pengzhanbo
841字约3分钟
2022-04-17
提问
git是目前使用最广泛的软件版本管理系统。
git是分布式版本管理工具。
两个命令都是用于 分支合并,区别在于 commit 记录的处理有所不同
git merge 会新建一个 合并 commit, 然后两个分支以前的commit记录都指向这个新的合并 commit 记录。 这种方法会保留之前每个分支的commit历史
git rebase 会先找到两个分支的第一个共同 commit 祖先记录,然后提取当前分支之后的所有commit记录,然后将
这个commit记录添加到目标分支的最新提交后面。经过合并后,两个分支合并后的commit记录就变为了线性记录。
如果想要一个干净的,没有 merge commit 的线性历史,那么可以选择 git rebase, 如果想要保留完整的历史记录,并且避免重写 commit history的风险,那么应该选择 git merge。
个人认为在团队协作中,如果团队成员对 git 的掌握一般,并不了解 rebase黄金法则,同时想要把控所有成员完整的提交历史, 建议选择使用 git merge,能够更好的追踪所有成员提交记录。
git-flow 是git的一种工作流,一种git分支管理方案。
git-flow 分支规范:
团队是否使用 git-flow 的完整工作流程,见仁见智,对于项目比较大,涉及人数较多,git-flow 是个不错的选择; 如果人数较少,那么可以在这个基础上,选择简化工作流。