Git ветки для работы над dev при объединении некоторых изменений в master - PullRequest
1 голос
/ 04 апреля 2011

Ранее, используя SVN, у меня была ветка, которая была моей веткой разработки, которая соответствовала коду на сайте разработки. Время от времени я вносил изменения в ветку разработки, а затем объединял только изменения в ствол, чтобы я мог запустить их в производство. Мне интересно, как я могу сделать что-то подобное с Git.

По сути, я хочу иметь возможность объединить 1 или несколько коммитов из ветви в мастер без объединения всей ветви.

Или я должен работать с git иначе? (Мне нужно сразу же выпустить изменения, чтобы я не смог их найти, пока все изменения не будут сделаны.) Должен ли я работать с несколькими ветками? Могу ли я объединить одну ветку в несколько других ветвей?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2011

Вы почти ответили на свой вопрос: да, вы можете объединить одну ветку в несколько других ветвей.

Итак, вы хотите создать ветку только для этой функции / исправления (общее название - «тема»), начиная с общего предка всех веток, в который вы хотите ее объединить. Выполняйте свою работу, закрепляйте ее, а затем объединяйте во все это.

# say version 1.2.3 is a common ancestor, and it's tagged
git checkout -b bugfix v1.2.3

# do some stuff
git add ...
git commit

git checkout master
git merge bugfix

git checkout dev
git merge bugfix
...

Ключевая часть здесь - , убедитесь, что ваша ветвь начинается с общего предка . Если вы этого не сделаете, то и в конечном итоге вы объедините кусочки других вещей.

Если по какой-то причине трудно найти хорошего общего предка, вы можете вернуться к комплектации вишней . По сути, это копирует коммит из одного места в другое. Однако лучше избегать этого, когда это возможно, поскольку это означает, что в истории вы получите две копии коммита.

1 голос
/ 04 апреля 2011

Я предпочитаю создавать "ветки тем" в git, где я реализую функцию в своей собственной ветке. Затем я могу выбрать, объединить ли это в разработку или производство или и то, и другое. Это позволяет продолжить разработку функций, в то время как исправления ошибок могут быть применены к производству за разумное время.

Его концепция похожа на модель, описанную здесь: http://nvie.com/posts/a-successful-git-branching-model/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...