10

我最近搞砸了一个git rebase -i,所以我想做一个git reset --hard HEAD@{5}

但是,执行git reset --hard HEAD@{5}orgit 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 存储库或做一些意想不到的事情的风险?

4

3 回答 3

13

对我来说,问题是我需要在Windows command prompt上加上双引号。

代替:

git reset --soft 'HEAD^' 

我不得不写:

git reset --soft "HEAD^"
于 2014-04-23T09:13:02.280 回答
1

Git 在合并和变基方面非常宽容。如果您在其中一项操作期间查看 git 存储库的文件结构,您会发现它会更改指定用于帮助执行这些操作的文件,并且不会不安全地更改核心对象。如果是这样,它是一种附加的方式。

因此,几乎没有机会对您的存储库造成任何损害。例如,获取另一个 repo,制作副本,启动 rebase,然后比较两者中的 .git 文件夹。

PS根据您对问题的评论,是的,请使用git rebase --abort

于 2012-10-15T17:15:05.897 回答
0

Git 有一些 shell 参数引用问题。

试试git log 'HEAD@{5}'吧。

就我而言,我得到了错误fatal: Log .git/logs/HEAD is empty.

下一个解决方法是:

git log HEAD^^^^^ .

于 2013-10-26T09:48:35.240 回答