git hard reset - 我做错了什么?

时间:2015-06-08 17:56:26

标签: git github hash

我有问题:我想提交一些东西,但是提交了整个位置,其中提交的文件夹是在那里。所以现在我喜欢在我的Github中有太多文件和文件夹,我真的只是想要回到原来的位置。这就是为什么我尝试硬重置,我在网上找到了。 所以首先我做了“git log”并复制了我想恢复的HEAD的哈希值。然后我告诉我的控制台“git reset --hard HASH”当然我填写了我的Hash,现在它就是HASH。这样做之后,git中的文件不会在线更改。我想我可能不得不先拉,然后推。我也尝试过提交和推送。不过,无论我做什么,在线文件都不会改变。 你知道我做错了什么吗?

2 个答案:

答案 0 :(得分:1)

如果您已正确描述了流量,则按以下顺序执行了这些操作:

  • 从远程分支工作
  • 您不打算提交的承诺工作
  • 将该工作推送到您的远程
  • 希望在推动之前恢复原状

在这种情况下,你会执行此操作。

警告:这是失去工作的好方法。如果你和别人一起工作,一定要得到他们的祝福。如果您确定您想要这样做,请继续。

git reset --hard HEAD^

这会将您带回HEAD引用指向的父级。

然后,您可以将结果推送到远程分支。

git push

答案 1 :(得分:0)

听起来你正试图删除远程分支及其历史记录。

我在这里找到了说明:http://help.github.com/articles/removing-files-from-a-repository-s-history/

$ git rm --cached giant_file #Stage our giant file for removal, but leave it on disk $ git commit --amend -CHEAD #Amend the previous commit with your change #Simply making a new commit won't work, as you need #to remove the file from the unpushed history as well $ git push # Push our rewritten, smaller commit