从远程中的已删除分支检索提交

时间:2014-10-29 12:21:58

标签: git github

在远程(在Github上),我有一个与已删除分支相关联的提交。 我可以在Github上看到提交及其父级,但我无法从本地shell访问它。

然而,父(哈希)是可访问的。

我尝试了以下方法(还有一些来自网络):

$ git fetch origin

$ git fetch origin eb9103f6cce6b2e4d83a909d07aec5f0e5b9c23b
fatal: Couldn't find remote ref eb9103f6cce6b2e4d83a909d07aec5f0e5b9c23b

$ git show eb9103f6cce6b2e4d83a909d07aec5f0e5b9c23b
fatal: bad object eb9103f6cce6b2e4d83a909d07aec5f0e5b9c23b

我怎样才能得到这个提交并实现它?

解决方案

正如@larsmans建议的那样,我使用了建议的hub语法,但使用了不同的调用。

我改为从上午申请,因为我破了抱怨合并无法完成。申请工作虽然我不得不重新添加更改。

hub apply https://github.com/team/project/commit/eb9103f6cce6b2e4d83a909d07aec5f0e5b9c23b

2 个答案:

答案 0 :(得分:1)

如果你仍然在GitHub网页用户界面上看到提交,你可以使用hub通过网址挑选它:

hub am https://github.com/team/project/commit/eb9103f6cce6b2e4d83a909d07aec5f0e5b9c23b

git fetch只会通过refspec提取提交,即它们必须是分支或标记的提示。)

答案 1 :(得分:0)

Git从来没有"失去"如果它有任何孩子,则提交。但是,内部垃圾收集可以删除它认为不再需要的对象。 您可以尝试的一件事是git fsck --lost-found 如果没有结果,则 SOL