从队友的先前Git回购中拉出来

时间:2014-04-15 02:16:01

标签: git git-extensions

我一直在与一系列同学一起参与一个项目。一次事故导致我把我自己的存储库弄得乱七八糟,以至于它无法使用,而且我不确定问题何时发生。我相信简单地清空我的存储库并从最新的同学提交中提取更容易,但是当我这样做时,没有任何反应。我的存储库仍然是空白的。

我们都从教师的基础知识库中分离出来,我们正在使用Git Extensions,因为我们都是Git的新手(但需要在课堂上使用它。)

enter image description here

我正试图在当天早些时候恢复Shade的提交,题为“更新游戏”,但我不知道如何去做。我该如何处理这个过程?

2 个答案:

答案 0 :(得分:0)

使用git log获取提交哈希,如43566df6a26a31a2d44ad102ffa241a0ab55edde。您可以使用git checkout然后git checkout -b从该点创建一个新分支。您也可以使用git branch删除旧分支-D git branch -m支持移动(重命名)新分支。

答案 1 :(得分:0)

当尝试使用Git做最简单的事情时,你会很快对GUI感到沮丧。这是你做一些更复杂的事情的时候之一,你需要使用终端;)。运行:

git checkout master
git reset --hard Shade/master

请注意,会破坏任何未提交的作品

现在master将指向Shade/master指向的提交。这是你问题的答案。但!有一个你应该考虑的问题。通过将master停留在origin/master后面,您已经创建了一个无法再推送到origin/master的情况,因为origin会拒绝非origin/master快进推进。你要做的是"虚拟合并" git merge --ours origin/master -m "Fix botched work" 放入您的本地副本,如下所示:

--ours

origin标志会丢弃其他分支中可能已合并的任何更改。现在您可以在没有{{1}}抱怨的情况下推送。

希望有所帮助!