Как правильно ветвиться и сливаться с Git?



Я искал все другие веб-страницы и прочитал много инструкций, но это просто не работает и/или ведет себя так, как я ожидал.



Я работал в master и только что закончил работу над версией 0.1 в своем проекте и хотел отделиться от нее, чтобы иметь легко доступный снимок 0.1. В настоящее время я работал в master, поэтому я побежал:



git branch 0.1


Это создало ветвь на моей машине просто отлично, но я не мог понять, за всю свою жизнь, как толкать ее. Я кончил тем, что ... работает:



git config push.default current


Теперь я могу переключаться между проектами, используя:



git checkout


И я был в состоянии толкать их очень хорошо и имел обе ветви на github. Затем я добавил файл журнала в 0.1, который просто сказал "0.1 Snapshot test", зафиксировал и нажал его нормально. Затем я решил, что мне нужен этот журнал в главной ветке, поэтому я побежал:



git merge 0.1


Затем я толкнул его. Это теперь сохранило 0.1 на моей машине, но удалило 0.1 из github. Edit: на самом деле, похоже, что он все еще находится на github, просто скрыт при просмотре общая главная страница.



Я думаю, что я не совсем уверен, как я должен использовать git, чтобы отслеживать предыдущие, но завершенные версии. В каком порядке я должен ветвиться и сливаться? Было ли это потому, что я работал в мастере, что я запутался? Я прочитал все это, но это еще больше смутило меня: http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging

892   4  

4 ответов:

Ваш вопрос связан только с толчком?

Вы можете сделать это:

git push origin master
git push origin 0.1
-- or all
git push --all origin

Или даже для всех ветвей:

Настройте git, чтобы тянуть и толкать все ветви

Мне очень нравится, как работает git flow. Вы можете, конечно, сделать все шаги ветвления, слияния и тегирования вручную, но git flow иллюстрирует это более четко, на мой взгляд:

Http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/

Http://nvie.com/posts/a-successful-git-branching-model/

При создании новой ветви на git первый толчок должен ссылаться на источник:

git push origin 0.1
Надеюсь, я правильно ответил на этот вопрос.

Если push не работает автоматически, как вы ожидаете, вы всегда можете быть явным:

git push origin localBranchName:remoteBranchName

Это приводит к перемещению локальной ветви в удаленную ветвь, и если такой ветви нет на удаленном сервере, она будет создана.

Вы можете удалить удаленную ветвь с аналогичным синтаксисом:

git push origin :remoteBranchName

Comments

    Ничего не найдено.