使用 Git 小心拉取:选择性(手动)从 origin/master 合并到 master

Careful pulling with Git: selective (manual) merge from origin/master to master

当使用 git 时,fetchmerge(如本 blog 中所指出的)似乎是个好主意,而不是按顺序拉允许自己在合并之前查看更改。 这似乎是一种合理且安全的做事方式,到目前为止我可以遵循。

但是,如果我然后在 master 和 origin/master 之间执行 git diff 并确定大部分更新都很好,但有几件事需要修复怎么办?有没有办法 "manually" 合并?我正在寻找类似于合并冲突后获得的编辑的东西,它可以让你决定每一个变化 - 有点像 git add --patch.

我想要的是在合并 origin/master 到我自己的母版之前拥有编辑东西的能力,最好是与我最喜欢的 difftool。 我知道这可以通过将更改应用到 master 然后用 git push -f 强制推送它来完成,但这似乎有点残酷和不必要。

另一方面,cherrypick 听起来是个很有前途的名字,但只允许 select 提交,不允许对文件进行实际更改。

如何进行高度 selective/manual 合并? docs 中的 None 合并策略似乎允许对此进行足够的手动控制。

合并的那一刻,使用参数--no-commit

git merge --no-commit <branch>

这将在创建提交时停止合并,将您的状态保留为待合并,这与发生冲突时完全相同。

根据这个状态,您可以比较并进行必要的更改。