Фон: Мы используем github для нашего проекта, и я работаю над своей собственной вилкой нашего основного хранилища. Мы используем rebase вместо merge, чтобы избежать больших коммитов.git rebase на долговечных (удаленных) признаках функций
Сценарий: Так я хочу работать, как это:
- При внедрении новой функции, создать локальную ветвь мастера вилки и положить в моих изменениях там. Я и другие в группе делают много мелких коммитов, поэтому почти всегда будет несколько коммитов, которые влияют на один и тот же файл на ветке.
- Наведите локальную ветвь на свою вилку, чтобы у меня была удаленная копия того, над чем я работаю (я не хочу, чтобы все мои изменения были потеряны, если мой ноутбук умирает или потерян. Я пытаюсь сделать это в конце каждого дня).
- Если вам нужно много времени, чтобы закончить эту функцию, я иногда переустанавливаю мой мастер вилки, чтобы убедиться, что не было никаких изменений, которые могли бы нарушить мою функцию. Обычно это нормально.
- Чтобы сохранить удаленный экземпляр ветви до даты, я подталкиваю свою локальную ветвь к ней после переустановки.
Задача: Этап 4, где я получаю проблемы. Мне почти всегда приходится иметь дело с быстрыми переадресациями и использовать git push -force.
Я посмотрел на
Git: how to maintain permanent parallel branches
How to maintain (mostly) parallel branches with only a few difference
и не нашли способ сделать свой рабочий процесс работы. Выполнение поиска google в рабочих потоках git в основном возвращает результаты, которые предполагают, что все вы работаете с локальными ветвями и не сохраняете удаленную копию на github (например, http://nvie.com/posts/a-successful-git-branching-model/).
Я относительно новичок в Git, поэтому хотел бы узнать, не хватает ли здесь чего-то. Я бы хотел сделать шаг 4 без использования. Альтернативный рабочий процесс, который по-прежнему позволяет мне использовать rebase вместо merge и сохранять удаленную копию моего локального ветвления, также будет очень полезен.
Вы можете избежать условия гонки, используя команду '--force-with-lease', которая не удастся, если восходящий поток будет более новым, чем ваш локальный. – mLuby