Git 安全变基或者“尝试变基,回退到合并”

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

2
我理解您的意思。首先,我会尝试进行变基,如果没有冲突,那么它就可以正常工作,并且您的历史记录会更加清晰。如果有冲突,则进行合并。唯一的区别是,我不会像您在第三个项目符号中建议的那样尝试将合并和变基分开到一个拉取请求的提交中。事实上,我不确定那是否有意义。这似乎与处理冲突并在解决冲突时执行“rebase continue”相同。结果将与具有冲突的变基相同。如果您有需要推送的更改,请进行变基或者如果有冲突,请进行合并。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接