Я нахожусь в этом порочном круге желания вернуть некоторые коммиты в неудачную сборку, которая говорит мне, что у меня есть конфликты слияния, прежде чем я смогу вернуться. Итак, я разрешаю конфликты слияния, добавляю их, фиксирую, нажимаю, сборка завершается сбоем, и когда я пытаюсь отменить некоторые коммиты, они говорят, что у меня есть конфликты слияния, и это те же конфликты слияния.
Вот что постоянно выходит из строя:
но они все одинаковые. Когда я пытаюсь удалить их все, кроме последнего с возвратом, я получаю конфликты слияния. Поэтому я разрешаю их, добавляю, фиксирую, нажимаю, и мы начинаем все сначала.
Как мне просто удалить все, кроме последнего коммита? revert
не работает, потому что он просто продолжает говорить мне, что у меня тот же конфликт слияния, который я разрешил в последнем коммите.
Это ошибка, которую я получаю:
git revert 8459a53eb21
error: could not revert 8459a53... DCMP-959: added member benefits
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
Я выполнил git reset HEAD~3
, чтобы вернуться на 3 коммита назад, но как мне убедиться, что я не повторю эти последние три коммита, а только тот, к которому я сбросился?
git rebase #gitcommithash
- при использовании git-rebase
результатом будет не новая фиксация в вашем репозитории, а обновленная голова в данной фиксации.
https://git-scm.com/docs/git-rebase
git-rebase также может использоваться для слияния одной ветки с другой. (вместо git слияния)
git-слияние и git-возврат добавляют новый коммит в ваш репозиторий.
Другое возможное решение для этого — использование git reset
.
git reset --hard #commithash
затем поместите свое текущее состояние в репозиторий с помощью:
git push --force