Как правильно ветвиться и сливаться с 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
4 ответов:
Ваш вопрос связан только с толчком?
Вы можете сделать это:
git push origin master git push origin 0.1 -- or all git push --all originИли даже для всех ветвей:
Мне очень нравится, как работает git flow. Вы можете, конечно, сделать все шаги ветвления, слияния и тегирования вручную, но git flow иллюстрирует это более четко, на мой взгляд:
Http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/
При создании новой ветви на git первый толчок должен ссылаться на источник:
Надеюсь, я правильно ответил на этот вопрос.git push origin 0.1
Если push не работает автоматически, как вы ожидаете, вы всегда можете быть явным:
git push origin localBranchName:remoteBranchNameЭто приводит к перемещению локальной ветви в удаленную ветвь, и если такой ветви нет на удаленном сервере, она будет создана.
Вы можете удалить удаленную ветвь с аналогичным синтаксисом:
git push origin :remoteBranchName
Comments