我使用了git pull并发生了合并冲突:
unmerged: some_file.txt
You are in the middle of a conflicted merge.
如何放弃对文件所做的更改,只保留已提取的更改?
我使用了git pull并发生了合并冲突:
unmerged: some_file.txt
You are in the middle of a conflicted merge.
如何放弃对文件所做的更改,只保留已提取的更改?
当前回答
如果最终出现合并冲突,并且没有任何要提交的内容,但仍显示合并错误。在应用所有下面提到的命令之后,
git reset --hard HEAD
git pull --strategy=theirs remote_branch
git fetch origin
git reset --hard origin
请删除
.git\index.lock
文件[恢复时剪切粘贴到其他位置],然后根据需要的版本输入以下任意命令。
git reset --hard HEAD
git reset --hard origin
希望这有帮助!!!
其他回答
git merge --abort
中止当前冲突解决过程,并尝试重建合并前状态。如果合并时存在未提交的工作树更改started,gitmerge--在某些情况下中止将无法重建这些变化。因此,建议始终在运行gitmerge之前提交或隐藏更改。git merge--abort等效于git reset--mergeMERGE_HEAD存在。
http://www.git-scm.com/docs/git-merge
您可以中止合并步骤:
git merge --abort
否则您可以保留更改(在哪个分支上)
git checkout --ours file1 file2 ...
否则您可以保留其他分支更改
git checkout --theirs file1 file2 ...
自从Git 1.6.1.3以来,Git checkout已经可以从合并的任何一侧进行签出:
git checkout --theirs _widget.html.erb
对于git>=1.6.1:
git merge --abort
对于旧版本的git,这将完成以下任务:
git reset --merge
or
git reset --hard
另一种保留工作副本状态的方法是:
git stash
git merge --abort
git stash pop
我通常建议不要这样做,因为它实际上就像Subversion中的合并,因为它会在接下来的提交中丢弃分支关系。