Git: Как сбросить трудно в refspec - PullRequest
0 голосов
/ 16 сентября 2011

Я делаю некоторую работу с герритом, а с герритом вы получаете только реферат коммита.Что-то вроде:

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, и это помещает мой репо кода в место, которое я, по крайней мере, знаю, чего ожидать.Существует очень высокая вероятность конфликтов слияния между исходным и конечным состоянием, и при полной перезагрузке следует избегать всего этого.

1 Ответ

5 голосов
/ 07 октября 2011

Вы можете сделать это в два этапа.

  1. Сначала получите изменение
  2. Затем полный сброс к FETCH_HEAD

Что-то вроде:

git fetch origin refs/changes/01/15501/2
git reset --hard FETCH_HEAD
...