从另一个分支获取换行更改,无需手动合并

时间:2014-12-11 03:00:02

标签: git merge newline

我试图将来自master的提交修复了一系列换行问题,而无需手动处理这些换行引起的所有冲突。

我们在master分支中做了一些提交来修复一些混乱的换行符。 这些提交触及了存储库中的许多文件。 现在,我想将这些更改带入一个功能分支myfeature,它与master中存在的功能有所不同。如果我们这样做

$ git checkout myfeature
$ git merge master

我们遇到冲突,因为Git认为master中的每一行都与myfeature中的每一行不同,这是真的。如果我们尝试使用

$ git merge -s recursive -Xignore-space-at-eol master

this SO question中所述,Git将使用myfeature中的换行符来查找master中没有实质性更改的任何行,这与我想要的相反。

有没有办法将master合并到myfeature获取更新的换行符,但无需手动管理冲突?

1 个答案:

答案 0 :(得分:1)

更多评论,但时间过长:只需合并另一个方向,并按照您喜欢的方式命名分支:

git branch tmpbranch master
git checkout tmpbranch
git merge -s recursive -Xignore-space-at-eol -m "my merge message" myfeature
git branch -f myfeature tmpbranch
git checkout myfeature
git branch -D tmpbranch

请注意,git会记录合并的方向,在此之后这将是不正确的。但是我从来没有见过一个工具实际上使用了这些信息而人们总是把它弄得乱七八糟,所以这不应该是问题。