如何从Github(Enterprise)下载我本地没有的提交?

时间:2016-01-05 18:13:40

标签: git github

我不小心在错误的仓库上做了push --force(打开了太多的termminals),有效地将主分支重置回早先的提交。

查看我的构建系统,我可以看到提交用于指向XYZ,但是我没有本地提交,因为我最近没有进行过pull或fetch。 repo在Github中,我可以在Github中导航查看提交,所以我知道它就在那里。

如何下​​拉提交以便我可以将master重置回正确的提交,而不必打扰推动该更改的开发人员?

3 个答案:

答案 0 :(得分:21)

您可以通过执行以下操作从Github GUI中的孤立提交创建分支:

  1. 浏览至https://github.com/yourOrg/yourRepo/tree/ commitHash
  2. 点击分支下拉列表
  3. 输入新的分支名称并按Enter键
  4. 现在你有了一个分支,你可以使用你的Git客户端正常检查它。

    Github create branch drop down

    备注

    当我研究这个时,

    This post很有帮助。除非你有一个包含孤立提交的本地存储库,否则它基本上表明你被卡住了。我的方法允许您添加分支,因此提交不再是孤立的。

答案 1 :(得分:0)

您可以通过某个分支访问XYZ,只需获取即可。如果没有,请按照@ weste的说明从分支指向它,然后获取:

git fetch
git checkout master
git reset --hard XYZ
git push -f origin master

答案 2 :(得分:0)

我知道您目前在本地没有提交;不过,您可以在不修改工作空间的情况下获得它,就像这样:

git fetch

此后,如果您进行了当前修改或类似的修改,则可以将其临时存储起来:

git stash save "My work to be completed later"

然后,您可以移回主分支:

git checkout -f master

然后,强制将HEAD移动到所需的孤立提交:

git reset --hard XYZ

或者,如果您更喜欢销毁并重新创建master分支,则可以“移动”到另一个分支,销毁master分支并重新创建它:

git checkout -b anyOtherBranch
git branch -D master
git checkout -b master XYZ

并最终推动您的新主分支;

git push --force origin master