Когда вы возвращаетесь, git создает новый коммит, который содержит «противоположность» отозванного коммита. Например, допустим, вы делаете git revert 39f5
, тогда у вас есть это:
* 8998 (HEAD -> master) Revert "Do stuff that is needed"
* 39f5 Do stuff that is needed
* 8573 First commit
Коммит 8998
- это возврат, но он по-прежнему нормальный. Он просто содержит «противоположность» как 39f5
. Это так же, как если бы вы отменили все изменения вручную.
Так что, если вы продолжите работать, всей работы в 39f7
больше не будет! Если вы делаете запрос на извлечение, это не входит. Если вы хотите, чтобы он был включен, у вас есть два варианта:
Вы можете отменить возврат. git revert 8998
избавит от возврата, и вы вернете свои первоначальные изменения (в которых есть ошибки). Затем исправьте ошибки в другом коммите и выполните ваш запрос на извлечение.
Вы можете сбросить возврат. git reset 39f5
вернется к фиксации 39f5
и «сотрет» возврат. Его больше не будет в вашей истории, и поэтому все изменения в 39f5
будут там. Снова исправьте ошибки в другом коммите и выполните запрос на извлечение.
Если вы новичок в git, я рекомендую вариант 1, потому что он более щадящий - изменения остаются в вашей истории, и вы можете вернуться к ним, если вы все испортили. Когда у вас будет больше опыта работы с git, вы узнаете, что больше подходит между вариантом 1 и вариантом 2, и сможете поиграть с ним немного больше.