Git 常用命令大全


🚀 Git安装与基础知识学习 🌐

🎯 Git作为一款全球开发者广泛使用的分布式版本控制系统,能够有效帮助团队协作并追踪项目历史版本。接下来,我们将详细展开Git的安装流程、基础命令操作、高级用法以及应对常见问题的方法。

I. 🔧 安装Git

1️⃣ Mac上的安装

  • 通过Homebrew安装 💻

    • 首先,确保你的Mac已安装Homebrew,若未安装,打开终端(Terminal)并运行以下命令来安装Homebrew:

      bash 复制代码
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    • 安装完成后,利用Homebrew安装Git:

      bash 复制代码
      brew install git
  • 直接下载安装包安装 📦

2️⃣ Windows上的安装

  • 通过Chocolatey安装 💻

    • 对于Windows用户,如果你有Chocolatey包管理器,可以在管理员权限的PowerShell中执行以下命令来安装Git:

      powershell 复制代码
      Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
      choco install git
  • 直接下载安装包安装 📦

    • 如果你没有Chocolatey,或者希望手动安装,可以从Git官网 https://git-scm.com/download/win 下载安装程序,然后跟随向导一步步完成Git的安装。

II. 📜 Git基础命令

👶 初始化本地仓库

当你在一个新的项目目录下想创建一个新的Git仓库时,只需运行:

bash 复制代码
git init

这将在此目录下创建一个.git隐藏文件夹,用于存储版本控制的所有信息。

📝 添加文件到暂存区

要将某个文件或所有修改加入到暂存区,以便后续提交,执行:

bash 复制代码
git add <file>

如果你想一次性添加所有更改,可以使用:

bash 复制代码
git add .

提交更改

将暂存区的更改永久记录到版本历史中,需执行提交操作,并附带一条简短明了的提交信息:

bash 复制代码
git commit -m "描述本次提交的信息"

📡 添加远程仓库

当你需要将本地仓库关联到GitHub或其他远程服务时,需要添加远程仓库地址:

bash 复制代码
git remote add origin <repository-url>

🚀 推送更改

完成本地提交后,你可以将这些更改推送到远程仓库的指定分支:

bash 复制代码
git push origin <branch-name>

📥 拉取更新

从远程仓库获取最新的提交并合并到本地,确保你的工作副本是最新的:

bash 复制代码
git pull origin <branch-name>

📌 分支操作

  • 创建新分支并切换到新分支:
bash 复制代码
git branch <new-branch-name>
git checkout <new-branch-name>
  • 或者,你可以一步到位地创建并切换新分支:
bash 复制代码
git checkout -b <new-branch-name>
  • 在你完成特定功能或修复后,需要将分支合并回主分支:
bash 复制代码
git checkout <main-branch-name>
git merge <new-branch-name>

III. 🧑‍💼 Git高级用法

🕵️‍♂️ 查看提交历史

查看项目的提交历史记录,包括作者、时间戳和提交信息:

bash 复制代码
git log

还可以结合各种选项定制输出格式。

撤销更改

若想撤消最近的一次提交并恢复至提交前的状态:

bash 复制代码
git reset --hard HEAD^

请注意,此命令会丢弃所有未提交的更改,慎用!

📌 stash暂存

当需要临时清理工作目录,而又不想提交任何未完成的工作时,可以暂存更改:

bash 复制代码
git stash

待合适时机,可以恢复之前暂存的更改:

bash 复制代码
git stash pop

🔍 查找差异

比较不同状态下的文件内容差异:

  • 查看工作区和暂存区的差异:
bash 复制代码
git diff <file>
  • 查看工作区与最近一次提交之间的差异:
bash 复制代码
git diff HEAD <file>

IV. 💬 常见问题与解决办法

😱 合并冲突

场景:假设Alice和Bob同时修改了同一行代码,Alice先提交,Bob在拉取并试图合并时遇到了冲突。

bash 复制代码
# Bob在尝试合并时遇到如下错误信息
Auto-merging src/main.js
CONFLICT (content): Merge conflict in src/main.js
Automatic merge failed; fix conflicts and then commit the result.

解决办法

  1. 打开冲突文件src/main.js,你会看到类似下面的冲突标记:
javascript 复制代码
<<<<<<< HEAD
// Alice的修改
function doSomething() {
    // Alice的代码...
=======
// Bob的修改
function doSomething() {
    // Bob的代码...
>>>>>>> Bob's-commit-hash
  1. 根据实际情况,手动编辑这个文件,选择保留哪一方的修改或者融合两者的修改。
  2. 解决完冲突后,将文件添加到暂存区并提交:
bash 复制代码
git add src/main.js
git commit -m "Resolved merge conflict in main.js"

🤔 丢失提交

场景 :不小心执行了 git reset --hardgit rebase 导致最近的提交丢失。

解决办法

  1. 使用 git reflog 查看历史操作记录,找到丢失提交的SHA码。
bash 复制代码
git reflog
  1. 假设你找到了丢失的提交SHA码为 abc123def456,可以通过 git cherry-pick 将该提交复制到当前分支。
bash 复制代码
git cherry-pick abc123def456

💡 忽略特定文件类型

场景:你不想让Git跟踪项目中的某些文件类型,比如IDE配置文件或构建产物。

解决办法

  1. 在项目根目录下创建或编辑.gitignore文件,列出你想要忽略的文件类型或文件路径。
text 复制代码
*.idea/
build/
*.log
  1. 已经被Git跟踪的文件需要先从索引中移除,才能开始忽略。
bash 复制代码
git rm --cached <file-you-want-to-ignore>
git commit -m "Remove <file-you-want-to-ignore> from version control"

以上只是Git日常使用中的一部分常见问题及其解决方案,每个问题都有可能随着具体环境和需求的不同而变化。掌握Git的核心概念和常用命令,并在实践中不断积累经验,才能更好地应对各种复杂情况。

相关推荐
不是吧这都有重名21 分钟前
利用systemd启动部署在服务器上的web应用
运维·服务器·前端
霸王蟹21 分钟前
React中巧妙使用异步组件Suspense优化页面性能。
前端·笔记·学习·react.js·前端框架
Maỿbe31 分钟前
利用html制作简历网页和求职信息网页
前端·html
编程、小哥哥32 分钟前
Java大厂面试:从Web框架到微服务技术的场景化提问与解析
java·spring boot·微服务·面试·技术栈·数据库设计·分布式系统
森叶1 小时前
Electron 主进程中使用Worker来创建不同间隔的定时器实现过程
前端·javascript·electron
霸王蟹1 小时前
React 19 中的useRef得到了进一步加强。
前端·javascript·笔记·学习·react.js·ts
霸王蟹1 小时前
React 19版本refs也支持清理函数了。
前端·javascript·笔记·react.js·前端框架·ts
繁依Fanyi1 小时前
ColorAid —— 一个面向设计师的色盲模拟工具开发记
开发语言·前端·vue.js·编辑器·codebuddy首席试玩官
codelxy1 小时前
vue引用cesium,解决“Not allowed to load local resource”报错
javascript·vue.js
程序猿阿伟2 小时前
《社交应用动态表情:RN与Flutter实战解码》
javascript·flutter·react native