用Git小心拉动:从原点/主人到主人的选择性(手动)合并

时间:2017-02-27 20:37:34

标签: git merge diff fetch low-level

使用git时,fetchmerge似乎是一个好主意(正如blog所指出的那样),而不仅仅是为了让自己查看合并前的变化。 这似乎是一种合理而安全的做事方式,到目前为止我可以效仿。

但是,如果我在master和origin / master之间执行git diff并确定大多数更新都是好的,但有几件事需要修复,该怎么办?有没有办法“手动”合并?我正在寻找类似于合并冲突之后的编辑的内容,这可以让您决定每个单独的更改 - 有点像git add --patch

我想要的是拥有编辑内容的能力,然后将origin / master合并到我自己的master中,最好是与我最喜欢的difftool合并。 我理解这可以通过将更改应用到master然后强制推送git push -f来完成,但这看起来有点残酷和不必要。

另一方面,cherrypick听起来像一个非常有前途的名称,但只允许选择提交,而不是文件的实际更改。

如何进行高度选择性/手动合并? docs的合并策略似乎都不允许对此进行足够的手动控制。

1 个答案:

答案 0 :(得分:3)

合并时,请使用参数--no-commit

git merge --no-commit <branch>

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

从此状态,您可以进行差异并进行必要的更改。