Если вы один в ветке и вам не нужно делиться своей историей с коллегами, я бы предложил использовать временную фиксацию:
С машины 1 в вашей ветке:
# you have unfinished modifications to "save"
git commit -am "temp"
git push origin HEAD
На компьютере 2 в вашей ветке:
# get your last commit like you usually do, let's say
git pull
# now let's "uncommit" the ugly temp
git reset HEAD^
(в качестве напоминания, git reset
без --soft
или --hard
делает его режимом по умолчанию --mixed
.Это означает, что изменения хранятся в рабочем дереве, поэтому только указатель ветви настроен на другой коммит)
На данный момент у вас есть ожидающие модификации от Машины 1, готовые для дальнейшего изменения, добавленныеи «правильно» зафиксировано, когда вы будете готовы.
Наконец, как вы спросили в комментарии, да, вам придется принудительно толкать в любом случае, когда вы хотите отразить назад на пульте (которыйвсе еще имеет временный коммит, который вы локально уничтожили, чтобы его заменили на ваш).
И, конечно, спасибо torek за полезную оптимизацию.