我将未提交的更改带到另一个分支,现在我无法将它们移回

bit*_*lip 6 git github-desktop

我正在使用 Github Desktop,因为我不太了解 git。

我所做的只是更改一个分支中的一些代码,然后在不提交更改的情况下切换到我的主分支(带来所有未提交的更改)。现在,当我尝试使用相同的未提交更改返回到原始分支时,Github Desktop 给我一个错误:

“错误:您需要首先解析当前索引”

我相信它认为我正在尝试将代码合并到我的主分支中?尽管我很确定我之前从未在主分支中进行过未提交的更改。

我可以看到我的所有更改都内联在主分支代码中,但有额外的行,例如“<<<<<<<更新的上游”和>>>>>>>围绕它们的隐藏更改。

我不确定该怎么做,因为如果这确实要求我做的话,我不想合并这样的代码。我只想将我的更改移回另一个分支,就好像我一开始就没有移动过它们一样。

再说一次,由于它们是未提交的更改,我不能只是恢复。正确的?

无论如何,我不知道是什么迫使我将更改带到主分支。

cod*_*der 1

因此,我认为我们可能需要更多信息,但我将继续进行一些假设。

我假设 github 桌面做了一个 git stash,然后更改了分支,然后弹出了存储...但这导致了合并冲突,所以...要做的第一件事是获取包含您的存储库的文件夹的完整副本 -把它备份。现在我们可以安全地处理您的存储库并尝试一些事情。

因此,当存储弹出合并失败(由于冲突)时,我相信存储不会被删除。您可以通过执行以下操作来检查这一点:git log --graph --oneline --all --decorate- 您应该看到类似的内容(请参阅参考/存储):

*   edc243c (refs/stash) WIP on test_branch: 85a2f16 added test3   <---- THIS
|\
| * 005e78b index on test_branch: 85a2f16 added test3
|/
* 85a2f16 (test_branch) added test3
Run Code Online (Sandbox Code Playgroud)

因此,我们应该将本地更改存储在单独的提交中,这样我们就可以安全地撤消合并并返回到旧分支并取消存储更改(如果我的假设是正确的)。所以步骤如下:

  1. 清除/取消暂存合并:(git reset HEAD --hard再次确保您先备份)
  2. 现在检查你原来的分支git checkout my_branch
  3. 现在取消您的更改:git stash pop

现在您应该看到修改后的文件重新出现,并且当您这样做时,git log --graph --oneline --all --decorate您将看到存储已被删除(弹出)。

  • 更新:通过仔细复制和粘贴将代码恢复到原始状态。 (2认同)