Откат к предыдущей команде - Github для MAC (возврат уже выполняется) - программирование
Подтвердить что ты не робот

Откат к предыдущей команде - Github для MAC (возврат уже выполняется)

Думаю, я перепутал здесь.

Я сделал несколько изменений в своем коде из последнего коммита, добавляя новые функции, и понял, что некоторые другие части кода теперь действуют странно. Я решил вернуться к старой фиксации (также нажатой на удаленный), чтобы проверить, работает ли эта функциональность к тому времени.

Прежде чем нажать "Откат", я внес свои изменения в настоящее время, потому что я не хотел их потерять. После совершения (не нажав на удаленный), я сделал откат к этому старому фиксации. (обратите внимание, что было сделано несколько коммитов между броском фиксации, к которому я обращался, и тем, который я совершил только сейчас).

Все работало нормально, и мой код вернулся к этой фиксации. Функциональность была плохой в этом деле, поэтому я решил вернуться к моей последней фиксации.

Однако я не знал, как это сделать, кроме Rolling Back до последней фиксации. Но это дало мне ошибку.

error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit | --abort)"
fatal: revert failed
(32768)

Теперь кажется, что большинство вещей вернулось, но текущая версия кода не совпадает с моей последней фиксацией. Это где-то посередине. = (

Что я сделал неправильно? [Я не прошу невинности, я знаю, что я сделал это неправильно;)]

Каков был правильный способ? [Я думаю, я должен был иметь разветвленный первый]

4b9b3361

Ответ 1

Я не знаю, что делает github для откат Mac, но вам кажется, что вам лучше использовать командную строку для решения проблемы:

git cherry-pick --abort - для остановки выполнения вишневых заготовок

git branch -va - покажет вам, где ваши указатели прямо сейчас

убедитесь, что ваш рабочий каталог чист: git status - не должно отображаться никаких измененных или поэтапных файлов

git stash - если что-либо измененное все еще присутствует

git reset --hard your_local_branch github/remote_branch - сделать локальную ветвь отражением состояния, как на удаленной стороне. очевидно, вам не нужно делать reset, если ваша текущая ветка будет указывать на то же сообщение, что и на пульте дистанционного управления. Если вы находитесь в состоянии состояния HEAD (состояние git сообщит вам об этом), то, чтобы вернуться в нормальное состояние, просто проверьте местную ветвь.

Теперь решите, чего вы на самом деле хотите достичь:

я. избавиться от ошибочной фиксации?

Используйте интерактивную перезагрузку и удалите строку с ошибочным фиксацией, затем принудительно нажмите на удаленное репо на github (скажем, ошибочное совершение произошло 10 коммитов назад)

git rebase -i HEAD~11

II. вернуть неверную фиксацию? - не рекомендовал бы делать это после некоторых других коммитов, если вы не уверены, что следующие коммиты не касаются одного и того же кода. Это эффективно создаст обратную фиксацию (если строка была добавлена ​​ошибочной фиксацией, она будет удалена путем возврата и наоборот)

git revert {commit-sha1}

III. Изменить ошибку? используйте интерактивную переадресацию, но дайте ей указание прекратить ошибочную фиксацию для внесения поправок. Когда он прекратит редактировать изменения и продолжит перезагрузку, затем принудительно нажмите на удаленную ветку (используйте команду rebase из решения I)

После того, как вы закончите, если что-то было спрятано, используйте git stash pop, чтобы вернуть изменения.

надеюсь, что это поможет!