我试图修复git的问题,不小心使用的git的复位 - 硬一些以前的承诺。所以现在我无法回到老头上。的Git失去了承诺
但是我没有克隆库我这样做之前,所以我把丢失的承诺回到原来的。这似乎昨天工作,但今天我看到,原来仍然停留在旧的承诺,新的似乎并不存在。 试图从克隆推新提交的git的告诉我一切再次不工作是最新的。
我该如何解决这个问题?
我试图修复git的问题,不小心使用的git的复位 - 硬一些以前的承诺。所以现在我无法回到老头上。的Git失去了承诺
但是我没有克隆库我这样做之前,所以我把丢失的承诺回到原来的。这似乎昨天工作,但今天我看到,原来仍然停留在旧的承诺,新的似乎并不存在。 试图从克隆推新提交的git的告诉我一切再次不工作是最新的。
我该如何解决这个问题?
为了让你的后脑勺在正确的地方:
git reflog
获得的,其中头部有一直最近的列表。git show sha1
找到你想要你的头为光斑。git merge
让你的主人回到正确的位置。一些解释:在一个git
提交没有任何指向一个提交后发生的提交。当您重置HEAD时,您将其指向较旧的提交。你以前的头现在晃来晃去没有任何指向它。
我们使用reflog
来查看HEAD最近在哪里。一旦它回到你想要的位置,你将主人或其他一些分支指向那个地方,一切都很好!
你不应该需要一个git reset --hard
后从另一个回购推什么。
git reflog
应该让你找到丢失的commit(这实际上是未引用的,但在你的Git回购仍然存在,默认情况下,直到90天:看git config gc.reflogexpire
你甚至可以make sure it never expires如果你真的希望如此。)。
参见例如Undoing a git reset --hard HEAD~1
或restore - git reset --hard HEAD^
作为例子。
尝试键入git fetch
获得更新的资料库
我做得有点不同。我没有...
git reflog
3bd79d2 [email protected]{2}: checkout: moving from edbfb06528c43586a0e0e10a73051e06980b9281 to master
edbfb06 [email protected]{3}: commit: added general comments for rubric
f8ca172 [email protected]{4}: checkout: moving from 904d63bf08f6f6b1494bfa473b158b9509b18423 to
904d63b [email protected]{10}: commit: updated results page and csv
933f2a6 [email protected]{11}: commit: updates
f56e6cd [email protected]{12}: clone: from [email protected]:xxxx.git
......在这种情况下,我的“为栏目增加一般性意见”是承诺,我失去了。现在我有了提交ID,我用cherry-pick取回它...
git cherry-pick edbfb06
'git cherry-pick the sha1's' –