如何反转应用存在冲突的藏匿点?

时间:2016-07-21 09:57:50

标签: git git-merge git-stash git-merge-conflict

我看到How to reverse apply a stash?提出的问题Pat Notz。我已经尝试了批准的答案,但我收到了这样的错误,

sudo git stash show -p | git apply --reverse
    error: patch failed: app/controllers/CloudController.php:673
    error: app/controllers/CloudController.php: patch does not apply
    error: patch failed: app/controllers/CloudGcode.php:1
    error: app/controllers/CloudGcode.php: patch does not apply

我必须解释我是如何在这种情况下运行的。 我的藏匿列表中有一个存储区,我在我的工作存储库中做了一些修改。我的工作存储库中的更改与存储@ {0}发生冲突。然后我按错误执行git add .sudo git stash apply命令,并显示此信息,

sudo git stash apply
[sudo] password for xxxx:
    Auto-merging app/controllers/CloudGcode.php
    CONFLICT (add/add): Merge conflict in app/controllers/CloudGcode.php
    Auto-merging app/controllers/CloudController.php
    CONFLICT (content): Merge conflict in app/controllers/CloudController.php

存储应用后,我的文件中存在冲突,

<<<<<<< Updated upstream
            for($i = 0; $i < $textlen; $i++)
            {
                $char = $uchars[$index++];
                if($char !== 0)
                    $text = $text.chr($char);
            }
            $this->text = $text;
Log::info('LLLLLLLLLLLLLLLLLLLL'.$text);
=======
            for($i = 0; $i < $this->textlen; $i++)
                $text = $text.$uchars[$index++];
            $this->text = $text;
            $this->text[$this->textlen] = 0; // Terminate string overwriting checksum
>>>>>>> Stashed changes
            $this->waitUntilAllCommandsAreParsed = true; // Don't destroy string until executed
        }
        $this->formatErrors = 0;
        return true;
    }
<<<<<<< Updated upstream
=======

然后我谷歌如何还原它。我在How to reverse apply a stash?提出问题Pat Notz,并尝试解决该问题。 我想知道有没有办法在执行sudo git stash apply之前,在执行git add .

之前或之后回滚状态

1 个答案:

答案 0 :(得分:2)

你应该简单地重新藏匿,然后git重置(甚至git reset --hard,前提是你先藏匿),如&#34; Aborting git stash apply&#34;中所述。

如果您先执行reset --hard而不先存储,您仍然可以在.git/refs/stash中看到您的补丁,如&#34; Undo git reset --hard after git stash pop&#34; (git stash apply无论如何都不会从藏匿处删除补丁,例如git stash pop,所以这里你不必担心这个问题)或you can recover it from git fsck

  

我想在执行sudo git stash apply

之前回滚状态

由于git apply --reverse不起作用,最好按照我的建议回到HEAD,然后重做您的操作。