问题描述
我想以某种方式配置git以获得这两个选项的最佳效果,不幸的是,这两个选项互斥:
[pull]
ff = only
rebase = true
基本上,我想在拉动时自动变基,但是如果存在冲突,则应该中止变基。
这样,如果我在后台更新,则我的存储库将始终保持有效状态。
解决方法
经过一番摆弄之后,我得出了以下shell别名:
[alias]
l = !git pull --rebase --autostash || (>&2 echo "Error - aborting rebase!" && git rebase --abort)
它拉动并重新设置基准,将所有本地更改放在远程分支的顶部。如果出现错误,则重新启动中止,一切恢复到先前的状态。
在极少数情况下,命令失败不是由于重新设置冲突而引起的,而这只会导致abort
也出错,并且不会创建任何无效状态。
现在这是从远程更新的首选方式,如果出现问题,我仍然可以使用默认的pull
命令。
如果有人有更本地化的建议,我还是会听!!