Answers:
您也可以这样做:
git checkout --theirs /path/to/file
保留远程文件,以及:
git checkout --ours /path/to/file
保留本地文件。
然后git add
他们就完成了。
版本:请记住,这是针对一种merge
情况。在a期间,rebase
--theirs
指的是您工作过的分支。
这种方法看起来更简单,避免了需要单独选择每个文件的情况:
# keep remote files
git merge --strategy-option theirs
# keep local files
git merge --strategy-option ours
要么
# keep remote files
git pull -Xtheirs
# keep local files
git pull -Xours
直接复制自: 解决Git合并冲突,以支持拉动期间的更改
git checkout {branch-name} -- {file-name}
这将使用所选分支中的文件。
我喜欢这个,因为posh-git
自动完成功能可以很好地解决这个问题。它还消除了关于哪个分支是远程分支和哪个分支是本地分支的任何歧义。并--theirs
没有为我反正工作。
有关行端东西,请参阅man git-merge
:
--ignore-space-change
--ignore-all-space
--ignore-space-at-eol
确保添加autocrlf = false
和/或添加safecrlf = false
到Windows克隆(.git / config)
如果您像这样配置mergetool:
git config mergetool.cp.cmd '/bin/cp -v "$REMOTE" "$MERGED"'
git config mergetool.cp.trustExitCode true
然后一个简单的
git mergetool --tool=cp
git mergetool --tool=cp -- paths/to/files.txt
git mergetool --tool=cp -y -- paths/to/files.txt # without prompting
会做的工作
在其他情况下,我假设
git checkout HEAD -- path/to/myfile.txt
应该可以
编辑以进行相反操作(因为您搞砸了):
git checkout remote/branch_to_merge -- path/to/myfile.txt
git checkout remote/branch_to_merge -- path/to/myfile.txt
解决合并冲突时,它就像一个超级按钮。(git 1.7.1)
git version 1.8.4
如果那很重要。