Intereting Posts
hg convert: принять во внимание svn: mergeinfo SVN не распознает изменения двоичного заголовка Можно ли задать имя стандартных svn-ключевых слов? Есть ли система управления исходным кодом (svn, git и т. Д.), Которая может совершать транзакции? Найти все изменения в одной строке с помощью TortoiseSVN Как лучше всего отслеживать «точки выпуска» в нашем репозитории? SSHing git@github.com показывает неправильный / старый ключ SSH Синхронизация 2 хранилища svn svn: E175002 Неожиданный статус HTTP 405 при изменении имени пользователя Выход журнала SVN в переменные BASH Настройки Visual Studio для конкретного решения Как исправить JavaHL (JNI) Недоступно после того, как я изменил пароль для входа на моем Mac? Раскадровка показывает затемненные представления при работе с svn TFS: удалить папку пакетов, которая уже была выполнена. git diffftool файлы на двух ветвях легко с завершением табуляции?

«В этой ветке 1 фиксация вперед, 1 фиксация за мастером» в Github при использовании «Успешной модели ветвления Git»,

Я работаю в чистом репо только с одним файлом. Я единственный разработчик.

Я хочу сделать рабочий процесс разработки-release-мастера в успешной модели ветвления git, поэтому я сделал:

Примечание. Имейте в виду, что по умолчанию у меня есть перемотка вперед, поэтому рассмотрите все команды merge --no-ff как merge --no-ff .

Мое происхождение – Гитуб.

В мастер- ветке:

 git add . git commit -m "Initial commit" git push origin master git checkout -b develop 

В развитии отрасли. Я делаю изменения в файле, а затем:

 git add . git commit -m "work in the file" 

Я готов опубликовать это как версию 0.0

 git checkout -b release-0.0 develop 

В ветке release-0.0 . Я добавляю номер версии в файл.

 git add . git commit -m "Bumped version 0.0" 

Я готов объединить этот выпуск в мастер.

 git checkout master git merge release-0.0 -m "Releasing v0.0" git tag -a 0.0 -m "Version 0.0" 

… и развиваться.

 git checkout develop git merge release-0.0 -m "Merge release 0.0 into develop" 

Затем я подталкиваю обоих мастеров и разворачиваюсь до Гитуба

 git push origin master git push origin develop 

Когда я проверяю ветку разработки в Github, она говорит:

Эта ветвь – 1 фиксация вперед, 1 фиксация за мастером.

У ветви мастера нет такого сообщения.

Что я могу сделать, чтобы исправить это? На этом этапе оба мастера и разработки должны быть равны, так как они были объединены как с релизом-0.0 .

Solutions Collecting From Web of "«В этой ветке 1 фиксация вперед, 1 фиксация за мастером» в Github при использовании «Успешной модели ветвления Git»,"

Нет, он не будет равным, так как вы по умолчанию отключили быструю перемотку вперед. Каждое слияние создает новую фиксацию, а слияние имеет другой идентификатор. Таким образом, фиксация слияния в master не является фиксацией слияния в разработке. И, следовательно, разработка имеет фиксацию не в мастер, а у хозяина есть фиксация, которая не развивается. Следовательно, сообщение развивается.

Что касается сообщения, которое не присутствует в главном, это потому, что сообщение приходит, когда ветвь сравнивается с мастером. Поэтому, если вы сравниваете мастер с мастером, сообщение не требуется.

Одним из решений является возможность быстрой перемотки вперед и явного создания коммитов слияния в release и мастер, а затем продолжить ускоренную пересылку. Другой вариант заключается в том, чтобы rebase развиваться после каждого слияния для освоения. Как вы хотите это сделать, это ваш личный выбор в зависимости от вашего рабочего процесса и кода.

Также сообщение о том, что вы не должны беспокоиться о том, что код в ветках точно так, как вы хотите.

Просто чтобы добавить к другим ответам:

Оригинальный git-поток не разрабатывался с 2012 года, и он был заменен изданием Git-flow AVH во многих местах (включая репозитории Ubuntu и Git для Windows ).

Одно из отличий, внесенных в редакцию AVH, заключается в том, что окончательное слияние – это то, что у мастера * развивается, а не выпускается в разработку .

Это делает мастера прямым родителем разработки и устраняет одну часть сообщения, которое вы видите; только «1 передача вперед» должна оставаться. Это также облегчает проверку того, что мастер и разработчик не расходились случайно.

* Точнее, это новый тег (на мастере), который объединяется в разработку.

Поскольку вы используете --no-ff каждый из них будет другой фиксацией. Когда вы объединяете relese-0.0 в развитие и в master, коммиты слияния будут разными. Вот как это выглядит:

совершает

Поскольку вы видите, что в ветке разработки есть одна фиксация (слияние версии 0.0 в разработке), которой нет (недоступно), мастер и ведущая ветвь имеют одну фиксацию (Release v0.0), которая не находится в ветке разработки. И вот что говорит гихуб с этим сообщением, и это совершенно нормально (содержимое одно и то же, но коммит отличается).

Если вы хотите использовать поток git, вы должны взглянуть на https://github.com/nvie/gitflow , что очень поможет вам.