Я использую Git уже около года и думаю, что это фантастика, но я только что начал вторую версию проекта и начал новую ветку для него. Я немного борюсь с лучшим способом справиться с происходящим.git - пропуская определенные коммиты при слиянии
У меня есть две ветви, называемые say master10 (для v1) и master20 (для v2). Я делаю исправления ошибок в v1 на master-сервере branch10 и разрабатываю новый материал master20. Всякий раз, когда я делаю исправление ошибки, я объединяю его в v2, проверяя master20 и делая git merge master10
. Все идет нормально.
Теперь, однако, я внес изменения в v1, который не нужен в v2, но я хочу продолжить слияние других исправлений ошибок. Как сообщить Git о пропуске этого конкретного коммита (или диапазона коммитов), но в будущем я все же хочу объединить другие исправления ошибок.
Я думал, что git rebase
может быть то, что мне нужно, но прочитать документ, и моя голова чуть не взорвалась.
Я думаю, что я хочу что-то вроде команды «git sync», которая сообщает git, что две ветви теперь синхронизированы и в будущем только сливают коммиты с этой точки синхронизации.
Любая помощь приветствуется.
Интересно, однако, если это не немного опасно: что такое мачта ~ 3, нельзя игнорировать, а просто отложить? С вашим решением любой последующий git merge maint не объединит мачту ~ 3. – VonC
Для отложенного фиксации я создал «суб-ветвь», сделаю именно то, что вы описали (в том числе git merge -s ours maint ~ 3), а затем слейте все из суб-ветви в master. Я считаю, что будущий «git merge maint» на этот раз сменил бы «mast ~ 3» – VonC
Я думаю, что если вам нужно отложить слияние этого фиксажа, у вас мало выбора, кроме как пропустить его (merge-our ours), а затем применить его, используя команда вишневого пика. Как только фиксация достижима с помощью мастера, ее нельзя снова объединить - избегая слияния одного и того же изменения дважды, это одна из главных целей git. – araqnid