Git: избавиться от предыдущего коммита, чтобы вы могли изменить предыдущий - PullRequest
1 голос
/ 29 сентября 2011

что произошло: change1, git commit, git push, change2, git commit

что должно было случиться: change1, git commit, git push, change2, git commit - изменить

Не важно, чтобы я сохранил change2, но важно, что я могу изменить исходный коммит.Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Раз уж вы нажали, знайте, что это сложно, и вы переписываете историю.

Вы можете git rebase -i до первого коммита и выбрать edit для коммита в тексте, который вам представлен. Таким образом, вы попадете в состояние первого коммита, в котором вы изменили / изменили, а затем git применит к нему следующий коммит.

Или вы можете git reset --soft first пойти на первый коммит и изменить его вместе с изменением2.

Или git reset --hard first, чтобы перейти к первому коммиту и изменить его без изменений2

0 голосов
/ 29 сентября 2011

[Я полагаю, вы знаете, что Линус думает, что это зло]

$ git reset --hard HEAD^  # remove last commit
$ git commit --amend
$ git push --force <remote> <branch>

Если вы хотите, чтобы последний коммит был применен позже, тогда выполните

$ SHA1=`git rev-parse master`
$ git branch temp
# now the three commands above
$ git cherry-pick $SHA1
$ git branch -d temp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...