如何将 Git 个日志合并在一起?
How to merge Git logs together?
如果我有一个 Git 分支,我想合并到我的 master 中,并且我想将该分支的日志历史合并到 master 的日志历史中,我应该这样做:
git checkout master
git merge <branch> --no-ff
或:
git checkout master
git merge <branch> --ff
或完全不同的东西? Git 文档在这一点上不是很清楚(至少对我而言)。
谢谢。
两种类型的合并都将保留历史记录。不同之处在于 --no-ff
将始终创建一个明确的合并提交,因此日志中会有一个条目,并且像 gitk
这样的图形工具将显示发生了分支和合并。 --ff
将进行 快进合并 ,因此不会进行显式合并提交(除非该分支不是主分支的直接后代)。
git 日志将与这些命令中的任何一个一起保存,因为当您合并时,您实际上是在将所有提交压缩到另一个分支中。当您合并到的分支自您进行更改以来没有提交时通常使用快速转发,因此不是添加额外的合并提交,而是将更改添加到您的分支,'fast forwarding' 该分支到您所做的最新提交。
如果文档没有帮助,这里有一个很好的解释
http://ariya.ofilabs.com/2013/09/fast-forward-git-merge.html
如果我有一个 Git 分支,我想合并到我的 master 中,并且我想将该分支的日志历史合并到 master 的日志历史中,我应该这样做:
git checkout master
git merge <branch> --no-ff
或:
git checkout master
git merge <branch> --ff
或完全不同的东西? Git 文档在这一点上不是很清楚(至少对我而言)。
谢谢。
两种类型的合并都将保留历史记录。不同之处在于 --no-ff
将始终创建一个明确的合并提交,因此日志中会有一个条目,并且像 gitk
这样的图形工具将显示发生了分支和合并。 --ff
将进行 快进合并 ,因此不会进行显式合并提交(除非该分支不是主分支的直接后代)。
git 日志将与这些命令中的任何一个一起保存,因为当您合并时,您实际上是在将所有提交压缩到另一个分支中。当您合并到的分支自您进行更改以来没有提交时通常使用快速转发,因此不是添加额外的合并提交,而是将更改添加到您的分支,'fast forwarding' 该分支到您所做的最新提交。
如果文档没有帮助,这里有一个很好的解释 http://ariya.ofilabs.com/2013/09/fast-forward-git-merge.html