0

我正在使用 gerrit 做一些工作,而使用 gerrit 你只能获得提交的 refspec。就像是:

refs/changes/01/15501/2

我如何重新设置这个?

我试着打得很好

[me@server code ((7deac0e...))]$ git reset --hard refs/changes/01/15501/2
fatal: ambiguous argument 'refs/changes/01/15501/2': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions

这不是最好的错误消息,所以我尝试了 agian ...

[me@server code ((7deac0e...))]$ git reset --hard -- refs/changes/01/15501/2
fatal: Cannot do hard reset with paths.

我不需要使用reset --hard,但它在我的情况下会很好用。我的脚本在代码仓库中运行,但我不知道它处于什么状态。只有一个可靠且不会更改的文件,即 reset_to_gerrit 脚本。

我告诉该脚本重置为某个 refspec,并将我的代码仓库放在我至少知道会发生什么的地方。原始状态和最终状态之间存在合并冲突的可能性非常高,硬重置应该避免所有这些。

4

1 回答 1

6

You can do it in two steps.

  1. First fetch the change
  2. Then hard reset to FETCH_HEAD

Something like:

git fetch origin refs/changes/01/15501/2
git reset --hard FETCH_HEAD
于 2011-10-07T14:14:37.640 回答