我有一个由超过 1 人共享的存储库所以我经常看到提交历史中有很多合并提交。我想摆脱它们以使我的提交历史看起来更干净。
我们应该遵循什么做法来避免这些合并提交?可行吗?
我阅读了有关使用--ff-only
开关进行合并的信息。这个开关可以帮助我吗?
我有一个由超过 1 人共享的存储库所以我经常看到提交历史中有很多合并提交。我想摆脱它们以使我的提交历史看起来更干净。
我们应该遵循什么做法来避免这些合并提交?可行吗?
我阅读了有关使用--ff-only
开关进行合并的信息。这个开关可以帮助我吗?
如果您有尚未推送到远程的本地更改,并且如果您从远程提取最新更新,它将创建一个合并提交。为了避免这种尝试
git pull --rebase
不,如果不能作为快进解决,只能失败,但合并失败并不能解决问题--ff-only
。git merge
为避免合并提交过多,请使用git rebase
.
请参阅http://git-scm.com/book/en/Git-Branching-Rebase了解 rebase 的工作原理。
我还有另一种避免合并提交的方法。这就是我现在正在关注的。
在进行任何提交之前,请始终从上游提取最新代码。
有时,它可能会说请提交您的更改/存储它们,并且不会让您获得最新的提交。这是因为您已经编辑了一些文件,并且在上游的一个提交中也进行了编辑。因此,使用git stash
再次使用git pull origin master
这一次,不会有任何问题,并且您拥有来自上游的最新代码。现在,使用git stash apply
可能存在一些自动合并冲突,解决它们并使用提交并推送到服务器git push origin master
可能有一种情况,在合并和提交的过程中,其他人也在上游/服务器上进行了提交。在这种情况下,您的推送将失败并要求您再次从服务器/上游拉取代码。如果你立即拉取,你将成为合并提交的受害者。所以为了避免这种使用git reset head^
不用担心您的代码不会丢失,现在您又回到了第 0 步。再次按照相同的步骤操作。你已准备好出发。