Некоторые изменения в @~
должны быть не в @
, а в другой ветви, поэтому сбросьте их здесь:
git reset -p @~ -- that/file
git commit
фиксируйте их там
git checkout another
git commit -p -- that/file
git checkout @{-1} # aannd we're back
В git commit -- path
есть логика особого случая, которая гласит: «Мне все равно, как выглядит индекс, фиксируйте только изменения определенных путей, которые я вам дал, и игнорируйте все остальное».Он построен специально для подобных случаев, когда вы исправили что-то, что требует отдельной записи.Просто зафиксируйте то, что находится перед вами в вашем рабочем дереве, а затем отправьте изменения куда угодно и как угодно, чтобы они были записаны.
Это, кстати, также удобный ярлык для перебазирования, чтобы полностью реорганизовать ваш текущийветвь вы можете
git reset --soft `git merge-base @{u} @`
, а затем делать патчи-коммиты для ваших изменений, переключаясь и / или делая ветки по желанию.Как только вы получите удобство с , что worfklow, есть даже git checkout --merge
, который запускает импровизированное слияние контента с вашим текущим советом в качестве основы, разрешить незначительные конфликты может быть заметно легче, чем выполнять копить и-поп-танец.