我正在考虑将我的 merge 工作流转变为更频繁地使用 rebase。在这种情况下,我是唯一的开发人员,但我在多个平台上工作,常常编辑特定于平台的相同文件,通常具有非冲突性的更改。但我有点不确定,因为关于 git 合并 vs git 变基的辩论以及它们的安全性(例如,请参见此处与此处,问题的两个顶级答案)。
问题:如何像以下这样做,目标是“安全”,但仍然尽可能干净地进行拉取/变基/合并:
这是否可以通过一个或两个简单的 git 命令完成,并使用正确的开关(我可以编写到拉取脚本或别名中)?如果不行,是否可以使用某些现有工具?
从另一个角度来看这个问题:我想自动化选择 rebase 或 merge 的决策,这样在进行 pull 时就不需要考虑这个细节了。
此外,这是否有任何意义? :)
- 如果存在未推送的提交,则使用
git pull --rebase
直到第一个与本地历史记录冲突的合并操作。 - 然后使用
git pull --no-rebase
合并其余部分并进行冲突解决。 - 可能会切换回变基以获得最后的非冲突更改,以使并行历史记录部分尽可能短。
这是否可以通过一个或两个简单的 git 命令完成,并使用正确的开关(我可以编写到拉取脚本或别名中)?如果不行,是否可以使用某些现有工具?
从另一个角度来看这个问题:我想自动化选择 rebase 或 merge 的决策,这样在进行 pull 时就不需要考虑这个细节了。
此外,这是否有任何意义? :)