我希望用git选择性地合并文件的部分。
我有两个分支 - 称他们为主人并且改变了 - 这是一个分开的承诺;如果我将master合并为change,它就会快进。
但是,我只想在一个文件中加入一些部分 - 从更改为主。
有没有干净的方法来做到这一点 - 例如git在进行每次更改之前询问?还是我坚持用手工做? (不是世界末日,但我不愿意,而且 - 是的 - 这可以通过我更多的计划来避免 - 这就是生活。)
答案 0 :(得分:14)
试试这个:
git merge --no-ff --no-commit changed # Merge in 'changed' but don't commit
git reset <path/to/your/file> # Reset the stage state but not file
git add -i <path/to/your/file> # Start adding in interactive mode
(Git will prompt you for each hunk; you can split hunks up if necessary.)
git commit # Finally commit the merge with only
# the bits you chose to stage.
但是,请注意,这样做会使Git认为文件已完全合并,因此如果有人再次在同一分支中合并,则该提交的其他更改仍然不会合并。这可能或者可能不是你想要的。
如果您需要git add
交互模式中各种选项含义的帮助,请参阅“交互模式”部分中git help add
的输出。