Git Commit во время Git Rebase — что на самом деле происходит?

Я ищу хорошее описание того, что происходит, если кто-то совершает коммит во время перебазирования, и как это можно легко «откатить».

Давайте рассмотрим сценарий, в котором происходит перебазирование большого коммита. Во время перебазирования возникает конфликт, и пользователь начинает объединять изменения. Теперь представьте себе ситуацию, когда вы почти закончили, но не вызвали git rebase --continueпо какой-либо причине (будь то длинные выходные или что-то в этом роде). На следующей неделе вы просто возобновили работу, еще во время перебазирования. Наконец, вы вызываете git commit --amend, чтобы добавить изменения к последнему коммиту, и... они оказываются в коммите, в который вы выполняли ребазинг.

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

Есть ли чистый, хороший способ исправить это? Это одно конкретное состояние, с которым я должен быть осторожен, и я никогда не хочу оказаться в нем, но это все же иногда случается — и в итоге я провожу целый день, пытаясь все исправить.

Буду признателен за любую помощь и предложения.Спасибо!

9
задан Tomasz W 20 June 2012 в 09:29
поделиться