【问题标题】:Git pull aborts itself, local file changes will be overwritten by mergegit pull 自行中止,本地文件更改将被合并覆盖
【发布时间】:2013-08-31 10:45:15
【问题描述】:
我更改了我的朋友正在同时工作的文件。我做了一些更改,现在我想推它,但它说我应该先拉。当我git pull 时,它说:
错误:您对以下文件的本地更改将被合并覆盖:请在合并之前提交您的更改或存储它们。
中止
如何合并文件?如果我这样做,我朋友的文件会完全改变吗?我确信他添加了一些东西,我也添加了我的东西。我们的变更将如何处理?
【问题讨论】:
标签:
git
git-pull
merge-conflict-resolution
【解决方案1】:
一种方法是先提交该文件,然后再拉取。
git add filename
git commit
//enter your commit message and save
git pull
另一种方法是存储您的更改然后拉取。然后应用 stash。
git stash
git pull
git stash apply stash@{0}
【解决方案2】:
执行git commit,然后执行git pull。它首先获取您朋友的更改,然后合并您的更改,不会丢失任何内容。
您的更改之间的冲突将以这种方式表示:
Here are lines that are either unchanged from the common
ancestor, or cleanly resolved because only one side changed.
<<<<<<< yours:sample.txt
Conflict resolution is hard;
let's go shopping.
=======
Git makes conflict resolution easy.
>>>>>>> theirs:sample.txt
And here is another line that is cleanly resolved or unmodified.
或者你可以使用一些交互式合并工具。