Git 重新隐藏因其他提交而暂停的更改
我把两台不同机器上的存储库搞砸了 在我的计算机(A)上,我提交了一些更改,并希望在另一台计算机(B)上进行这些更改,但在第二台计算机上,有一些更改需要备份并在以后恢复 因此,我使用Git 重新隐藏因其他提交而暂停的更改,git,github,version-control,git-stash,Git,Github,Version Control,Git Stash,我把两台不同机器上的存储库搞砸了 在我的计算机(A)上,我提交了一些更改,并希望在另一台计算机(B)上进行这些更改,但在第二台计算机上,有一些更改需要备份并在以后恢复 因此,我使用git diff查看更改的位置,然后git stash在机器B上清理目录。 最后,我git pull--rebase新提交并测试了机器B上的所有工作 然后我尝试恢复隐藏的更改执行git stash pop(我通常更喜欢git stash apply,但在这种情况下我没有使用它) 我收到了一封信 # On branch
git diff
查看更改的位置,然后git stash
在机器B上清理目录。
最后,我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 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'
警告:您将留下109个提交,未连接到
您的任何分支机构:
8d5ee94在制品打开(无分支):2cffcf8使用服务
be1466a索引打开(无分支):2cffcf8使用该服务
2cffcf8使用该服务
b8d40bf添加了分页
... 还有105个。
如果您想通过创建一个新分支来保留它们,这可能是一个好时机
这样做
切换到“主”分支
在这一点上,我停下来完全明白发生了什么
“见鬼,为什么我有这么多的分离犯?我肯定他们一定是来自‘大师’分支……但是,怎么办?”
因此,我仍然保留着分支“主”中隐藏的更改;我不明白。。并且不知道如何像以前一样分离隐藏的更改,并将它们从实际的主分支中再次分离
我在机器a和B上都尝试了一个git pull--rebase
+git checkout master
,但是B上存储的文件与a上的相同文件仍然不同
我怎样才能了解我的初始情况?
- 隐藏中的未知更改(最终恢复为未老化的更改)
- 我在藏匿后所做的承诺让分支机构负责
键入的git命令的简要列表:
git状态
(主控->无需提交)git stash pop
(主控->无需提交)(已删除的存储{0}:提交a1b2c3d4)
(这里我希望我所做的更改显示为未分级的文件)git隐藏应用a1b2c3d4
(没有看到任何变化,我尝试应用它)git签出a1b2c3d4
(NoBranch,在a1b2c3d4上拆下头部->无需提交)
(没有看到任何变化,我愚蠢地尝试了这个)git签出主机
(主机->无需提交)
(最后一件蠢事。现在一切都合并了)git status
我想回到第一个命令状态。我找到了行为的原因 在机器B上工作的一位同事提交了隐藏中的更改,即使我不知道为什么目录没有被清理(可能是它移动了文件,可能是从其他地方提交的,一台机器C)。 无论如何,我保存了一些与已经提交的更改相对应的暂存文件(为了不丢失其他人的未知工作)。 因此,拉取最近的提交已经得到了我试图从隐藏中恢复的更改 我可能在控制机器A上的文件时犯了一些错误,我没有看到更改已经存在 对不起,浪费了你的时间 我建议每个人都吃点东西,而不是在一个问题上和饥饿一起撞脑袋:) 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'