如何解开我从GIT存储库中弄出来的混乱局面?

时间:2017-11-09 15:53:11

标签: git git-bash smartgit

我是GIT的新手,并且认为我可以创建一个简单的测试提交/推送。在这个过程中,我最终看到附图中显示的一团糟。

enter image description here

问题是,我需要调用哪些GIT命令来删除红色箭头上方的所有内容,并将原点/主文件保留在红色箭头所在的位置?

我不关心我的本地克隆库中的任何文件。当这个烂摊子被修复时,我可以重新克隆。

2 个答案:

答案 0 :(得分:2)

有几种方法。

  1. 如果您想在本地保存文件:git reset 4c5222

  2. 如果您不想保留所有文件git reset --hard 4c5222

  3. 如果您想保留历史记录并进行转发提交,则可以对要删除的每个提交使用git revert COMMIT

  4. 在这种情况下,您会想要选项2,但它会完全删除对文件的任何更改,并且无法恢复。所以一定要确定。这将修复您的主分支。

    现在,要清理其他分支,只要不需要任何内容​​就可以删除分支。 git branch -D branch_name

答案 1 :(得分:1)

假设您使用的是本地版本的母版,我会选择:

git reset --hard 4c5222c0

这会将您的本地repo带到红色箭头指向的提交的哈希值。

然后你可以强制推送掌握,例如:

git push origin +master