什么是处理“git pull”的最简单的方法,它意外地省略了`--rebase`?

时间:2013-05-22 19:49:41

标签: git

当我们在尚未发布的仓库中提交本地更改时,正确的做法是git pull --rebase将它们与上游集成。这样可以生成干净的线性日志。如果我们执行git pull,我们会得到丑陋的合并,因为git使我们的提交在一种侧分支中保持完全相同,并自动应用其他更改来集成它们。这些合并是不必要的,因为这些更改从未发布过,并且不必使用相同的SHA哈希以相同的形式保留。如果它们与上游处于良好的直线发展状态,那就更好了。

是否可以轻松撤消git pull的效果,然后使用git pull --rebase重新执行此操作?

预防性地,是否有办法让git pull要求显式--no-rebase--rebase以便在有本地提交时继续,而不是假定默认值可能是错?

3 个答案:

答案 0 :(得分:2)

您无需尝试重​​做它,只需在键入git pull --rebase后再次键入git pull

答案 1 :(得分:1)

看一下git refloggit reset --hard到拉前的状态,再来git rebase --pull

您还可以设置为自动变基,而不是合并新的分支:

git config branch.autosetuprebase always

以及

的现有分支
git config branch.*branch-name*.rebase true

答案 2 :(得分:0)

在合并之前将HEAD和工作树回滚到上一次提交:

git reset --hard HEAD^