Как правильно использовать git и ветки

Я немного новичок в управлении версиями с помощью GIT. Я читаю этоРуководство и я следую базовому подходу, который показан на диаграммеВОТ, Тем не менее у меня есть некоторые сомнения относительно того, как использовать git-ветки для отделения разработки новых функций от существующего кода.

Вот пример. Предположим, что в начале мой репозиторий содержит следующие две основные ветви:

Master branch (containing the release version) Develop Branch (containing new fixes or features to separate them from existing project features)

Когда мне нужно разработать новые функции или модули, я создаю ветки из Develop и запускаю там новые проекты кода. Например, я делаю три новые ветки, чтобы добавить функции, связанные сSun, Star, а такжеSuperNova, Теперь мой репозиторий содержит пять веток:

Master branch: Release 1.0.0 Develop branch: Modification after release 1.0.0 NewModule_Sun branch: add Sun to project (create from Develop branch) NewModule_Star branch: add Star to project (create from Develop branch) NewModule_SuperNova branch: add SuperNova to Project (create from Develop branch)

Для версии 1.0.1 я хочу включитьSun а такжеStar модули, но неSuperNova, Итак, я объединяю их с Develop, а затем объединяю Develop с Release:

Merge NewModule_Sun into Develop Merge NewModule_Star into Develop Merge Develop into Master (release 1.0.1)

Ветвь Develop должна быть сохранена постоянно, ноSun а такжеStar ветви больше не нужны. Они удаляются:

Delete the NewModule_Sun branch Delete the NewModule_Star branch

После этих изменений мой репозиторий содержит следующие три ветки:

Master Branch: Release 1.0.1 Develop Branch: Modification after release 1.0.1 NewModule_SuperNova branch: Modification after release 1.0.0 (created from Develop when it was not merged with the Star/Sun branches)

==

Во-первых, правильно ли я использую ветки git?

Во-вторых, я просмотрел историю последней ветки Develop, и, похоже, я потерял некоторую информацию оNewModules, Это нормально? И можно ли перенести всю историческую информацию в ветку Develop?

Спасибо!!

 codef0rmer04 апр. 2012 г., 12:36
Это может помочь.stackoverflow.com/questions/2613903/…

Ответы на вопрос(2)

Я предлагаю вам прочитатьhttp://nvie.com/posts/a-successful-git-branching-model/ который определяет хороший шаблон для git-ветвления.

Я обнаружил, что я держу ветки разработки в течение некоторого времени, пока время не сделает историю изменений, которую вы сделали в этих ревизиях, не стоит сохранять (около 6 месяцев), а затем удаляю их.

 Marcx04 апр. 2012 г., 12:25
Я читал, что ... я на самом деле использую эту систему ... Мой вопрос об удалении ветки не объяснен ... это в основном мое основное сомнение :)
 29 июн. 2016 г., 16:06
Благодарю. Как полная парадигма ветвления, ваша ссылка была именно тем, что мне было нужно.
Решение Вопроса

Am I doing a propery use of git?

Да, рабочий процесс, который вы описываете, в значительной степени стандартный рабочий процесс. Вы создаете какую-то ветку, работаете над ней, и когда вы закончите, вы объединяете ее и удаляете ненужную ветку (если только вы не собираетесь продолжать разработку в этой ветке).

After removing a branch, viewing the history it seems to me that I have lost every information about the branch itself... is that normal?

Да это нормально.

is it possible to remove a branch but leaving the history information unbroken?

Не уверен, что вы имеете в виду здесь. Пока вы слили ветку перед ее удалением, история все еще там. Вы просто слили его в другую ветку, и историю можно увидеть на этой ветке. Нет способа узнать, когда была удалена ветка, если это то, что вы просите.

 Marcx05 апр. 2012 г., 09:33
ах хорошо .. я искал способ (что вы сказали мне, что это невозможно) увидеть начало и конец ветви ... жаль :(
 30 мая 2016 г., 05:52
@Marcx Я немного опоздал, но, возможно, вы все еще ищете этот флаг "git merge --no-ff branchname"

Ваш ответ на вопрос