Невозможно выполнить git reset на предыдущий коммит в travis

При построении моего кода в travis, в случае сбоя, я хочу сбросить HEAD до предыдущего коммита и выполнить некоторые действия. Проблема в том, когда в travis.yml Я делаю:

after_failure:
- git reset --hard HEAD@{1}

Это всегда указывает на последний коммит.

Если я сделаю git reset --hard HEAD 04d24f1 я получаю fatal: Cannot do hard reset with paths. а печать хэшей почему-то показывает письмо m рядом с коммитом, который я пытался сбросить до

1b8bc73 (HEAD, origin/feature/RXM-73-create-aws-rollback-script, feature/RXM-73-create-aws-rollback-script) Fail 7
* 04d24f1m Pass 7  << letter m added
* 8c6a51e Fail 6
* 37e3e38 Pass 6

Если я распечатаю историю коммитов git reflog -4тогда я получаю только 2 коммита и они оба имеют одинаковый хеш

1b8bc73 (HEAD, origin/feature/RXM-73-create-aws-rollback-script, feature/RXM-73-create-aws-rollback-script) HEAD@{0}: checkout: moving from feature/RXM-73-create-aws-rollback-script to 1b8bc736d2297be68e18d13de74dde3f75694072
1b8bc73 (HEAD, origin/feature/RXM-73-create-aws-rollback-script, feature/RXM-73-create-aws-rollback-script) HEAD@{1}: clone: from https://github.com/MaxRepo/terraform-rx-manager-service.git

Если я распечатаю историю коммитов git log --oneline --graph --decorateзатем он отображает историю следующим образом:

* 1b8bc73 (HEAD, origin/feature/RXM-73-create-aws-rollback-script, feature/RXM-73-create-aws-rollback-script) Fail 7
* 04d24f1m Pass 7
* 8c6a51e Fail 6
* 37e3e38 Pass 6
* 4ddfd89 Pass 5

Дополнительная информация - В начале это то, что Трэвис делает перед выполнением команд:

0.74s$ git clone --depth=50 --branch=feature/RXM-73-create-aws-rollback-script https://github.com/MaxRepo/terraform-rx-manager-service.git MaxRepo/terraform-rx-manager-service
Cloning into 'MaxRepo/terraform-rx-manager-service'...
remote: Enumerating objects: 118, done.
remote: Counting objects: 100% (118/118), done.
remote: Compressing objects: 100% (91/91), done.
remote: Total 175 (delta 52), reused 61 (delta 22), pack-reused 57
Receiving objects: 100% (175/175), 32.98 KiB | 8.24 MiB/s, done.
Resolving deltas: 100% (66/66), done.
$ cd MaxRepo/terraform-rx-manager-service
$ git checkout -qf 1b8bc736d2297be68e18d13de74dde3f75694072

Ты знаешь, почему я не могу get reset пока строишь на Трэвисе?

1 ответ

Решение

Как уже указывал Саджиб Хан, вы хотите

git reset --hard HEAD~1

и не git reset --hard HEAD@{1},


Здесь есть некоторая полезная информация, которая объясняет разницу. *Короче, HEAD в твоем случае нигде не указал кроме (HEAD, origin/feature/RXM-73-create-aws-rollback-script, feature/RXM-73-create-aws-rollback-script), а также @ обозначение для того, где голова была *.

Вы можете изучить список возможных @{#} ценности, глядя на

git reflog

чтобы убедиться, что HEAD не указывал в другом месте.

Другие вопросы по тегам