重新隐藏其他提交暂停原因的更改

时间:2014-07-14 16:26:46

标签: git github version-control git-stash

我在两台不同的机器上搞砸了一些存储库。

在我的机器上(A)我提交了一些更改,并希望在另一台机器(B)上安装这些更改,但在第二台机器上有一些更改我需要备份并稍后恢复

所以我用git diff查看更改的位置,然后在机器B上git stash清除目录。 最后,我git pull --rebase新的提交并测试了一切正在机器B上工作。

然后我尝试恢复隐藏的更改执行git stash pop(我通常更喜欢git stash apply但在这种情况下我没有用它)。

我收到了

# On branch master
nothing to commit (working directory clean)
Dropped refs/stash@{0} (8d5ee9...aa3)

然后我执行了git status,看到没有任何改变。

# On branch master
nothing to commit (working directory clean)

“嗯......很奇怪。我想恢复一些实际上已经改变和隐藏的变化”

我以为已经丢失了这些更改,所以试图做git apply 8d5ee9...af3,但没有任何改变。

“该死的!也许在藏匿处什么也没有,因为一些奇怪的原因!”

幸运的是,我总是保留终端的所有日志,然后回到git diff,看到我发生了什么变化。 我查看了文件,我看到已经集成在代码中的隐藏更改,但是git status没有告诉我我有未分段的文件。

“什么?发生了某种反叛/合并,我甚至不知道何时以及如何发生?”

所以我尝试git checkout master(因为隐藏的更改应该与它分离),我得到了一个

Warning: you are leaving 109 commits behind, not connected to
any of your branches:

   8d5ee94 WIP on (no branch): 2cffcf8 uses the service
   be1466a index on (no branch): 2cffcf8 uses the service
   2cffcf8 uses the service
   b8d40bf Added pagination
  ... and 105 more.

If you want to keep them by creating a new branch, this may be a good time
to do so

Switched to branch 'master'

此时我停下来了解发生了什么。

“到底是什么?为什么我有这么多分离的提交?我确定他们必须来自'主'分支.....但是,怎么样?” < / p>

所以我仍然从分支'master'中的藏匿处进行更改;我不明白..并且不知道如何像以前那样分离隐藏的变化,并将它们从实际的主分支再次划分

我在机器A和B上都尝试了git pull --rebase + git checkout master,但是存放在B上的文件仍然与A上的相同文件不同。

我最初的情况怎么样?

  • 存储中的未知更改(最终还原为非分段更改)
  • 使用我在保存后执行的提交来掌握的分支

我真的很困惑该怎么做。


键入的 git 命令的简短列表:

  1. git status (主 - >无提交)
  2. git stash pop (主 - >无提交)(丢弃的存储{0}:提交a1b2c3d4) (我希望我的更改显示为非暂存文件)
  3. git stash apply a1b2c3d4 (没有看到任何改变我试图应用它)
  4. git checkout a1b2c3d4 (NoBranch,在a1b2c3d4上分离了HEAD - &gt;无法提交) (没有看到任何改变,我愚蠢地试过这个)
  5. git checkout master (主 - >无提交) (最后一件蠢事。所以现在一切都合并了)
  6. 检查了文件并进行了更改,但仍未显示git status
  7. 我想回到第一个命令状态。

1 个答案:

答案 0 :(得分:1)

我找到了行为的原因。

一位在机器B上工作的同事提交了存储中的更改,即使我不知道为什么目录没有被清理(也许它移动了文件并且可能是从其他地方提交的,机器C )。 无论如何,我存放了暂存的文件(因为没有丢失其他人的未知工作),这些文件对应于已经提交的更改。 因此,拉动最近的提交确实已经得到了我试图从藏匿处恢复的更改。

我可能在控制机器A上的文件时犯了一些错误,我没有看到更改已经存在。

抱歉浪费你的时间。

而且我建议每个人都吃点东西,而不是一直与饥饿一起解决问题:)