我最近搞砸了git rebase -i
,所以我想做一个git reset --hard HEAD@{5}
。
但是,执行git reset --hard HEAD@{5}
或git log HEAD@{5}
会导致显示以下错误消息:
fatal: ambiguous argument 'HEAD@{5}': unknown revision or path not in the working tree.
然后,我决定指定与HEAD@{5}
中显示的git reflog
对应的哈希键。例如:
git reset --hard e8be841
这样做,是否有任何风险搞砸git存储库或做出意想不到的事情?
答案 0 :(得分:7)
对我来说问题是我需要在 Windows命令提示符上加上双引号。
而不是:
git reset --soft 'HEAD^'
我不得不写:
git reset --soft "HEAD^"
答案 1 :(得分:0)
Git对合并和重组的方式非常宽容。如果您在其中一个操作期间查看git存储库的文件结构,您将看到它改变了指定用于帮助这些操作的文件,并且不会不安全地更改核心对象。如果是这样,那就是一种附加的方式。
因此几乎没有机会对您的存储库造成任何损害。举个例子,拿另一个repo,制作副本,启动一个rebase,然后比较两者中的.git文件夹。
P.S。根据您对问题的评论,是的,请使用git rebase --abort
答案 2 :(得分:0)
Git有一些shell参数引用问题。
请尝试git log 'HEAD@{5}'
。
在我的情况下,我收到错误fatal: Log .git/logs/HEAD is empty.
。
下一个解决方法是:
git log HEAD^^^^^