Таким образом, я не большая часть эксперта по управлению исходным кодом, я использовала Подверсию для проектов в прошлом. Я должен использовать Мерзавца для конкретного проекта (клиент предоставил Мерзавца repo).
Мой рабочий процесс как таков, что я буду работать над файлами от двух различных компьютеров, и часто я должен зарегистрироваться в изменениях, которые нестабильны, когда я перемещаюсь с места на место, таким образом, я могу продолжить свою работу. То, что затем происходит, - когда, скажем, клиент пойдет для получения последней версии, они также загрузят нестабильный код.
В SVN можно обратиться к этому путем создания соединительной линии и использования, работающего ответвления, или использовать соединительную линию в качестве рабочей версии и создать стабильные ответвления.
Каково эквивалентное понятие в Мерзавце и там простой способ сделать это через GitHub?
Есть много разных способов сделать это. Если вам нужно переходить с компьютера на компьютер, вы будете переключаться на другой репозиторий, а это значит, что вы будете продвигать свои изменения в удаленный репозиторий. Это хорошо, но это также означает, что вы
Очень простой пример - выполнять свою нестабильную работу только в приватной ветке и назвать её как-нибудь очевидно, например, unstable-development
. Вот как это сделать с нуля. Во-первых, давайте создадим новое репо с сайта вашего клиента, которое я назову "secret-sauce".
$ git clone git://example.com/repositories/secret-sauce.git
Вы все еще находитесь на ветке master
, которая используется по умолчанию. Давайте сделаем новую ветку, чтобы вы могли фиксировать материал там, а не на master
.
$ git branch unstable
$ git checkout unstable
Switched to branch 'unstable'
Хорошо. Теперь добавим немного нестабильного кода:
$ touch kablammo.txt
$ git add *
$ git commit -m "Added unstable code."
[master (root-commit) 9428aef] Initial checkin.
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 kablammo.txt
Прямо сейчас unstable
существует только на вашей стороне. Обратите внимание, что при клонировании мы получили удалённый репозиторий под названием origin
, который имеет соответствующую ветку master
. Когда ваш локальный репозиторий знает о ветках удаленного репозитория, мы называем это "отслеживающей веткой". Вы можете увидеть все ваши удалённые отслеживающие ветви с помощью git branch -r
:
$ git branch -r
origin/HEAD -> origin/master
origin/master
Хорошо. Давайте оттолкнем наши изменения!
$ git push origin unstable
Вот и все - наши изменения теперь живут в ветке unstable
на удаленном репозитории. Если мы захотим посмотреть, что люди делают в ветке master
, мы можем переключиться обратно с помощью git checkout master
.
Я нахожу это ценным ресурсом: A Successful Git Branching Model
В отличие от SVN, git децентрализован. У вас никогда не должно возникать необходимости выкладывать нестабильный код в репозиторий вашего клиента. Вы можете просто перетащить нестабильный код на свой второй компьютер с первого.
Несмотря на это, git отлично справляется с ветвлением и должен быть неотъемлемой частью любой методологии, которую вы в итоге используете.