繁体   English   中英

git : Pull 是不可能的,因为你有未合并的文件

[英]git : Pull is not possible because you have unmerged files

我正在使用 php-git 客户端在我的 php 脚本中提取分支。 每当我从 master 结帐到 test 时,我都会收到以下错误。

error: Pull is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

我的文件在 bitbucket 服务器上。 我在 bitbucket 上添加/修改文件并在那里提交。

我不明白,我没有在本地机器上修改任何内容,但仍然出现此错误。

以下是我的“git status”输出。

Your branch is up-to-date with 'origin/testing'.

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Changes to be committed:

    modified:   g_1.0.yaml
    new file:   potter_3.4.yaml
    new file:   potter_3.4.yml

Unmerged paths:
  (use "git add <file>..." to mark resolution)

    both modified:   abc_1.0.json

您正处于合并过程中,请尝试阅读您复制的消息,很清楚您应该做什么:您有未合并的路径。 (修复冲突并运行“git commit”)(使用“git merge --abort”中止合并)

所以首先清除合并冲突

使用您选择的合并工具(例如:tortoise merge、meld)
或者手动完成,在冲突的文件中,您应该看到像 <<<<<<< HEAD 这样的箭头,选择适当的一个

然后提交

git commit -m "foobar"

现在您应该能够从远程推/拉,但您可能需要先拉,以便在本地合并新的更改。

或者,如果你不需要你的代码,只想扔掉所有东西并获得主人,你可以减轻

git reset --hard origin/master

将您的本地存储库重置为原始/主状态,但您将丢失所有本地更改

如果您不想合并更改但仍想更新您的语言环境,请运行:

git reset --hard HEAD 

这将用头部重置你的本地,然后使用 git pull 拉你的遥控器。

如果您已经在本地提交了合并(但还没有远程),并且想再次返回:

git reset --hard HEAD~1

Unmerged paths:有一个文件Unmerged paths:部分: abc_1.0.json

这是冲突的征兆。 当您从同一分支运行之前的git pull时,它可能会出现。


您现在必须选择:

  1. 如果您知道您在abc_1.0.json修改了abc_1.0.json ,并且需要将此修改保留在此文件中,请解决冲突:

    • 在编辑器中打开abc_1.0.json
    • 寻找冲突标记(看起来像: <<<<< HEAD , ===== , >>>>> testing
    • 选择应该保留的版本
  2. 如果您知道当前的合并并不重要,您可以运行git merge --abort ,然后再次尝试拉取。

如果有正在暂存的未合并路径,您需要取消暂存它们。 要找出未合并的路径:

git status

要取消所有:

git restore --staged .

现在您可以拉取更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM