Подтвердить что ты не робот

Как я могу перевести понятия магистрали/ветки из Subversion в Git?

Итак, я не являюсь экспертом по контролю версий, я использовал Subversion для проектов в прошлом. Я должен использовать Git для конкретного проекта (клиент предоставил Git repo).

Мой рабочий процесс таков, что я буду работать над файлами с двух разных компьютеров, и часто мне нужно проверять изменения, которые нестабильны, когда я переезжаю с места на место, чтобы продолжить свою работу. Что происходит тогда, когда, скажем, клиент отправляется на получение последней версии, они также загружают нестабильный код.

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

Что такое эквивалентная концепция в Git, и есть ли простой способ сделать это через GitHub?

4b9b3361

Ответ 1

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

Очень простой пример - выполнить только свою неустойчивую работу в частной ветке и назвать ее чем-то очевидным, например. unstable-development. Вот как это сделать с нуля. Во-первых, позвольте сделать новое репо с вашего сайта клиента, которое я назову "секретным соусом".

$ 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.

Ответ 2

Я нахожу это ценным ресурсом: Успешная Git модель ветвления

В отличие от SVN, Git децентрализована. Вам никогда не придется выставлять неустойчивый код в ваш репозиторий клиентов. Вы можете просто вывести нестабильный код на ваш второй компьютер с первого.

Сказав, что Git обрабатывает разветвление большой и должно быть неотъемлемой частью любой методологии, которую вы в конечном итоге используете.