我使用git pull并遇到了合并冲突:
git pull
unmerged: _widget.html.erb You are in the middle of a conflicted merge.
我知道该文件的另一个版本是好的,而我的是坏的,所以我的所有更改都应该被放弃。我怎样才能做到这一点?
如果您的 git 版本 >= 1.6.1,则可以使用git reset --merge.
git reset --merge
此外,正如@Michael Johnson 所提到的,如果您的 git 版本 >= 1.7.4,您也可以使用git merge --abort.
git merge --abort
与往常一样,请确保在开始合并之前没有未提交的更改。
从git merge 手册页
git merge --abort相当于git reset --merge何时MERGE_HEAD出现。
MERGE_HEAD
MERGE_HEAD 正在进行合并时出现。
此外,关于开始合并时未提交的更改:
如果您有不想在开始合并之前提交的更改,只需git stash在合并之前和git stash pop完成合并或中止它之后提交。
git stash
git stash pop
由于您pull不成功,因此HEAD(not HEAD^) 是您分支上的最后一个“有效”提交:
pull
HEAD
HEAD^
git reset --hard HEAD
您想要的另一部分是让他们的更改覆盖您的更改。
旧版本的 git 允许您使用“他们的”合并策略:
git pull --strategy=theirs remote_branch
但这已被删除,正如Junio Hamano(Git 维护者)在此消息中所解释的那样。如链接中所述,您可以这样做:
git fetch origin git reset --hard origin