git基础知识图解

59 阅读2分钟

1. Git 核心概念

1.png

2. Git 工作流程

2.png

git add . → git commit -m "消息" → git push

3. Git 分支管理

3.png

git branch 分支名称 → git checkout 分支名称 或一步完成:git checkout -b 分支名称

4. 分支合并:Merge vs Rebase

4.png

合并:git merge 分支名称 变基:git rebase 分支名称

注意:  Rebase 会改变提交历史,不要在已共享的分支上使用!

5. 远程仓库操作

5.png

克隆:git clone 仓库地址 拉取:git fetch 远程名称 / git pull 远程名称 分支名称 推送:git push 远程名称 分支名称

6. 撤销与恢复操作

6.png

撤销工作区修改:git checkout -- 文件名
撤销暂存区:git reset HEAD 文件名
修改最后一次提交:git commit --amend
回退到特定版本:git reset --hard 提交ID

补充:Git Revert

git revert 是一种安全的"撤销"提交的方法。与 reset 不同,revert 不会删除历史,而是通过创建一个新的提交来"反做"特定提交的更改。

直观解释

想象以下场景:

  1. 你有一个文件,其中包含文本 "Hello"
  2. 提交 A:添加了文本,变成 "Hello World"
  3. 提交 B:又添加了文本,变成 "Hello World!"
  4. 提交 C:修改为 "Hello Amazing World!"

现在,如果你想撤销提交 C 做的更改,但保留提交 A 和 B:

  • 使用 git reset 会回到提交 B,但会丢失提交 C 的历史记录
  • 使用 git revert 则会创建一个新的提交 D,将内容恢复为 "Hello World!",但提交 C 仍然保留在历史中
提交历史:  A --- B --- C  (现在在这里)
                      ^
                     HEAD

执行 git revert C 后:

提交历史:  A --- B --- C --- D  (现在在这里)
                           ^
                          HEAD

其中 D 是"反做"C的新提交

使用场景

git revert 特别适合以下情况:

  1. 公共分支修复:当你在已推送到远程的分支上发现错误时
  2. 保持历史完整:当你需要记录错误并明确标记其修复过程时
  3. 团队协作:当其他开发者可能已经基于该错误提交继续开发时