学习笔记:Git 分支与分叉

83 阅读1分钟

学习笔记:Git 分支与分叉

1. 分支与分叉的基本概念

在 Git 中,分支是一个非常强大的特性,允许开发者在不同的分支上独立地进行开发工作。每个分支都可以视为一个独立的开发环境,这使得团队合作变得更加灵活和高效。分支与分叉的概念在 Git 中尤为重要,尤其是在多人协作开发项目时。

  • 分支:分支是在同一仓库内创建的独立开发线程。每个分支都有自己的 HEAD 指针,指向该分支的最新提交。
  • 分叉:当一个分支从另一个分支派生出来,但两者开始有不同的提交时,就形成了分叉。分叉本质上是分支的一种状态,表示两个分支之间的差异。

2. 分支的操作

2.1 创建分支

创建分支非常简单,可以使用 git branch 命令:

$ git branch <branch-name>

例如,创建一个名为 dev 的分支:

$ git branch dev
2.2 切换分支

切换到新创建的分支可以使用 git checkout 或者 git switch 命令:

$ git checkout dev
# 或者
$ git switch dev
2.3 删除分支

删除分支可以使用 git branch -dgit branch -D 命令。-d 选项会检查是否已经合并,如果没有合并则不允许删除;-D 选项强制删除分支,不论是否合并。

$ git branch -d <branch-name>
# 强制删除分支
$ git branch -D <branch-name>

例如,删除 dev 分支:

$ git branch -D dev

3. 分叉的处理

当多个开发者在同一项目上工作时,可能会出现分叉的情况。分叉可以通过合并或变基(rebase)来解决。

3.1 合并分支

合并分支使用 git merge 命令。假设我们想将 dev 分支合并到 master 分支:

$ git checkout master
$ git merge dev
3.2 变基(Rebase)

变基是另一种处理分叉的方法,它可以将一个分支的提交应用到另一个分支上,使得提交历史更加线性。变基使用 git rebase 命令:

$ git checkout dev
$ git rebase master

4. 恢复删除的分支

如果误删了分支,可以通过 git reflog 查找删除前的提交记录,然后恢复分支。例如,查找 bug 分支删除前的提交记录:

$ git reflog

找到删除前的提交记录,例如 284f5e1,然后恢复分支:

$ git branch bug 284f5e1

5. 注意事项

  • 合并前确认:在删除分支之前,务必确认已经合并了所有必要的更改。
  • 版本号记录:删除分支后,版本号会被删除且不会记录在 reflog 中。因此,删除分支前最好记录下版本号。
  • 强制删除:使用 -D 选项强制删除分支时要谨慎,确保不会丢失重要数据。

示例代码

# 初始化仓库
$ git init

# 创建并切换到 dev 分支
$ git branch dev
$ git checkout dev

# 在 dev 分支上提交一些更改
$ echo "This is a change in dev branch." > file.txt
$ git add file.txt
$ git commit -m "Add changes in dev branch"

# 切换回 master 分支
$ git checkout master

# 合并 dev 分支到 master
$ git merge dev

# 删除 dev 分支
$ git branch -D dev

# 恢复 dev 分支
$ git reflog
$ git branch dev <commit-hash>