2017-09-14 40 views
0

git打我周围跑,在一个分支my_branch手动编辑.git文件夹有多糟?

git reset HEAD~1 

然后,我想git pull撤消reset

但是起源是一个在线存储库和,离线,git pull只是中止

所以我找到了一个解决方法:

  • 从日志
  • 编辑.git/refs/heads/origin/my_branch获取来源尖端的哈希值,并从日志由一个替换的哈希

似乎工作,但看起来不那么干净/不安全以我为我不这么用打破.git文件夹 所以,这就是为什么我问是否安全

(是的,我觉得愚蠢到没有觉得pull相当于fetch + merge

回答

1

编辑分支指针并不坏,但很容易就可以在没有它的情况下撤销重置。

# Reset to the parent commit 
git reset HEAD~1 
# Reset to where HEAD was, before you last changed it 
git reset '[email protected]{1}' 

可以使用git reflog命令来浏览这些,这就是你可以找到[email protected]{1}

通常,如果要撤消git reset,请使用另一个git reset进行撤消。

0

您可以仅检查您重置的提交。即使你不那么容易看到它们,Git也会保留那些周围的人。散列基本上都是你真正需要的。

0

抵达了类似的结果,以拉与

git reset --hard origin/my_branch 

注意:--hard是锋利的工具。小心使用它。在这种情况下,它会重置您的本地my_branch,工作树和索引,以匹配最近获取或拉取的my_branch中的内容。未提交的作品可能会丢失。