当我们在尚未发布的仓库中提交本地更改时,正确的做法是git pull --rebase
将它们与上游集成。这样可以生成干净的线性日志。如果我们执行git pull
,我们会得到丑陋的合并,因为git使我们的提交在一种侧分支中保持完全相同,并自动应用其他更改来集成它们。这些合并是不必要的,因为这些更改从未发布过,并且不必使用相同的SHA哈希以相同的形式保留。如果它们与上游处于良好的直线发展状态,那就更好了。
是否可以轻松撤消git pull
的效果,然后使用git pull --rebase
重新执行此操作?
预防性地,是否有办法让git pull
要求显式--no-rebase
或--rebase
以便在有本地提交时继续,而不是假定默认值可能是错?
答案 0 :(得分:2)
您无需尝试重做它,只需在键入git pull --rebase
后再次键入git pull
。
答案 1 :(得分:1)
看一下git reflog
和git reset --hard
到拉前的状态,再来git rebase --pull
。
您还可以设置为自动变基,而不是合并新的分支:
git config branch.autosetuprebase always
以及
的现有分支git config branch.*branch-name*.rebase true
答案 2 :(得分:0)
在合并之前将HEAD和工作树回滚到上一次提交:
git reset --hard HEAD^