Я использую git, и мне бы хотелось создать коммит, который не синхронизируется с удаленным репозиторием. Такая фиксация должна "плавать" поверх всех других коммитов в локальном репозитории, чтобы избежать влияния на историю. Я мог бы использовать такую фиксацию для хранения локальных изменений (изменения конфигурации, флаги отладки, локальные обходные методы и т.д.).
В настоящее время я вручную переустанавливаю, когда я беру на себя обязательство переупорядочить фиксацию в верхней части, и я нажимаю, используя HEAD^
, чтобы избежать нажатия локальных изменений. Я также рассмотрел возможность внесения изменений в кошелек, но это менее удобно, потому что это препятствует нормальному использованию кошелька. Другой альтернативой является просто оставить все эти локальные изменения неустановленными и использовать git add -p
каждый раз, когда я хочу совершить. Однако при большом количестве тривиальных локальных изменений это становится проблемой.
Вот пример моего текущего рабочего процесса:
Мой репозиторий первоначально выглядит как
A---B---C---F master
где "F" - это моя плавающая фиксация.
Я делаю фиксацию:
A---B---C---F---D master
затем git rebase -i HEAD~2
, чтобы изменить порядок:
A---B---C---D---F master
а затем git push remote HEAD~1...
нажать все, кроме локального F
commit.
Изменение F содержит изменения в существующих версиях файлов и может содержать произвольное количество изменений. (Если я могу сделать более одного "плавающего", это будет еще лучше, поскольку я мог бы затем отделить локальные изменения).