asd*_*asd 0 git version-control gerrit
我正在做一些使用gerrit的工作,并且使用gerrit你只能获得提交的refspec.就像是:
refs/changes/01/15501/2
Run Code Online (Sandbox Code Playgroud)
我该如何重置这个?
我试着玩得很开心
[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
Run Code Online (Sandbox Code Playgroud)
这不是最好的错误信息,所以我试过agian ......
[me@server code ((7deac0e...))]$ git reset --hard -- refs/changes/01/15501/2
fatal: Cannot do hard reset with paths.
Run Code Online (Sandbox Code Playgroud)
我不需要使用reset --hard,但它在我的情况下会很好用.我的脚本在代码仓库中运行,但我不知道它处于什么状态.只有一个文件可靠且不会更改,这是reset_to_gerrit脚本.
我告诉该脚本重置为一些refspec,并将我的代码仓库放在一个我至少知道会发生什么的地方.原始状态和最终状态之间存在很大的合并冲突的可能性,并且重置应该避免所有这些.
你可以分两步完成.
就像是:
git fetch origin refs/changes/01/15501/2
git reset --hard FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)