Git,必须拉,知道会有冲突,但本地版本是无关紧要的

时间:2011-11-07 22:36:03

标签: git command-line merge repository conflict

我知道在拉动时会有冲突,但我已经知道存储库版本更好了。如何使用git命令解决命令行上的所有冲突

类似$> git resolve conflict with theirs或其他东西

4 个答案:

答案 0 :(得分:5)

如果您不想保留更改,那么pull就是错误的操作。如果存储库版本明确更好,您只需获取并重置。

E.g。

git fetch

# Assuming my branch was based on origin/master,
# throw my changes away.
git reset --hard origin/master

显然要小心这一点,因为你可能会失去未提交的更改。您可能希望做一个简单的git reset origin/master并手动删除您当地的更改。

答案 1 :(得分:3)

你是否仍然可以将你的HEAD与遥控器合并,而不会完全删除你的更改,但总是以远程方式解决冲突:

git pull -s recursive -Xtheirs <remote-ref>

但要注意 - 您的更改将部分保存,并且部分会被覆盖。如果您希望它们在树的一部分中被覆盖并保留在另一部分中,这可能没问题,但是对结果代码要非常小心,请务必查看它并将其与远程版本进行比较。

答案 2 :(得分:3)

通过指定合并策略,您应该能够这样做:

git fetch
git merge -s recursive -Xtheirs remotes/origin/branch_name

git pull -s recursive -Xtheirs origin master

答案 3 :(得分:0)

尝试

git clean
git pull

如果没有帮助,请尝试

git reset --hard HEAD
git pull