当我试图在终端中拉入我的项目目录时,我看到以下错误:

harsukh@harsukh-desktop:~/Sites/branch1$ git pull origin master
U app/config/app.php
U app/config/database.php
U app/routes.php
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.

为什么git说“拉是不可能的,因为你有未合并的文件”,我该如何解决它?


当前回答

只需执行以下命令:

git reset --hard

其他回答

如果你想下拉一个远程分支到本地运行(比如为了检查或测试),当你$ git下拉时,你会得到本地合并冲突:

$ git checkout REMOTE-BRANCH
$ git pull  (you get local merge conflicts)
$ git reset --hard HEAD (discards local conflicts, and resets to remote branch HEAD)
$ git pull (now get remote branch updates without local conflicts)

如果你不想合并这些变化,并且仍然想要更新你的本地,那么运行:

git reset --hard HEAD  

这将重置您的本地与HEAD,然后拉动您的远程使用git拉。

如果你已经在本地提交了你的合并(但还没有推送到远程),并且想要还原它:

git reset --hard HEAD~1 

有一个简单的解决办法。但要做到这一点,你首先需要学习以下内容

vimdiff

为了消除冲突,您可以使用

git mergetool

上面的命令基本上为每个冲突文件打开本地文件、混合文件、远程文件(总共3个文件)。本地和远程文件只是供您参考,使用它们您可以选择在混合文件中包含(或不包含)什么。然后保存并退出文件。

只需执行以下命令:

git reset --hard

当合并发生冲突时,您可以打开单个文件。你会得到 “<<<<<<<或>>>>>>>”符号。这些是指您的更改和远程显示的更改。 您可以手动编辑所需的部分。 之后,保存文件,然后做: git添加

合并冲突将得到解决。