Начнем с репозитория Git. Мы создадим папку под названием project.git и инициализируйте его, чтобы он стал удаленным репозиторием:
$ mkdir проект.мерзавец$ cd project.git /
$ git init --bare
Инициализированный пустой репозиторий Git в / Users / zakh_eecs / _work / LearnGIT / git_remote_repository /
проект.git /
Теперь перейдите в новое место, где вы можете создать чистую папку. Создайте папку project_source и инициализируйте ее для Git:
$ mkdir project_source$ cd project_source
$ git init
Инициализированный пустой репозиторий Git в / Users / zakh_eecs / _work / LearnGIT / git_branching_source /
project_source /.git /
$ touch ReadMe.текст
$ git add -A
$ git commit -m "Начальная фиксация"
[master (root-commit) 176134f] Начальная фиксация
1 файл изменен, 0 вставок (+), 0 удалений (-)
режим создания 100644 ReadMe.текст
Project_setup - это каталог Git с ReadMe.txt файл. Однако он не подключен к нашему удаленному репозиторию. Создадим проект.git в качестве удаленного репозитория для project_source. Мы можем добиться этого с помощью следующей команды:
$ git удаленное добавление origin / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.мерзавец$ git push origin master
Подсчет объектов: 3, готово.
Запись объектов: 100% (3/3), 213 байт | 0 байт / с, выполнено.
Всего 3 (дельта 0), повторно используется 0 (дельта 0)
К / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.мерзавец
* [новая ветка] мастер -> мастер
С помощью команды git remote add origin мы создали соединение между проектом.git и project_source. С помощью команды git push origin master мы переместили нашу основную ветку в удаленный репозиторий.
Проверим наши ветки (все еще в папке project_source):
$ git ветка* владелец
$ git branch -r
происхождение / хозяин
$ git branch -a
* владелец
пульты / происхождение / мастер
Первая команда показывает только локальную ветку. Параметр -r показывает удаленную ветку. И опция -a показывает как локальные, так и удаленные.
Создадим несколько веток в нашем рабочем каталоге:
Разработка ветки $ gitИсправление ветки $ git
$ git ветка экспериментальная
$ git branch -a
разработка
экспериментальный
исправление
* владелец
пульты / происхождение / мастер
Мы создали ветки под названиями разработка, исправление и экспериментальная. Они появляются в нашем списке местных филиалов. Но в remote / origin есть только master ветка, потому что это единственная, которую мы нажали. Звездочка (*) master означает, что мы все еще находимся в локальной основной ветке. Пойдем в ветку разработки, зафиксируем изменения и отправим эти изменения в удаленный репозиторий.
$ git checkout разработкаПерешли в ветку разработка
$ echo abc> ReadMe.текст
$ git add -A
$ git commit -m "Измененная ветка разработки"
[development dd9933e] Измененная ветка разработки
1 файл изменен, 1 вставка (+)
$ git push origin разработка
Подсчет объектов: 3, готово.
Запись объектов: 100% (3/3), 257 байт | 0 байт / с, выполнено.
Всего 3 (дельта 0), повторно используется 0 (дельта 0)
К / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.мерзавец
* [новая ветка] разработка -> разработка
Теперь проверим все ветки:
$ git branch -a* разработка
экспериментальный
исправление
владелец
пульты / происхождение / развитие
пульты / происхождение / мастер
Мы видим, что находимся в локальной ветке разработки, но есть еще ветка удаленной разработки. Когда мы отправили наши изменения с помощью git push origin development, он создал ветку разработки в remotes / origin.
Давайте теперь выйдем из project_source и найдем новое место, где у нас может быть новая папка. Здесь мы собираемся клонировать удаленный репозиторий с помощью следующей команды:
$ git clone / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / проект.мерзавецКлонирование в «проект»…
Выполнено.
Мы клонировали новую копию проекта из проекта.мерзавец. Зайдите в папку проекта и проверьте ветки:
$ cd project$ git ветка
* владелец
Когда Git делает первоначальный клон из удаленного репозитория, он получает только главную ветку. Если мы воспользуемся опцией -a, мы увидим:
$ git branch -a* владелец
удаленно / происхождение / ГОЛОВА -> происхождение / мастер
пульты / происхождение / развитие
пульты / происхождение / мастер
Обратите внимание, что нет локальной ветки разработки. Кроме того, мы никогда не переносили исправления и экспериментальные ветки из project_source в project.мерзавец, поэтому мы их не видим. В удаленном репозитории есть ветки master и development (remotes / origin / HEAD -> origin / master не является веткой, он просто сообщает вам, на что указывает HEAD).
Давайте добавим ветку разработки в нашу рабочую среду:
$ git fetch - всеПолучение происхождения
$ git checkout разработка
Настройка развития веток для отслеживания развития удаленных веток из источника.
Перешли в новую ветку "разработка"
Если вы используете старую версию Git, возможно, вам придется использовать:
$ git checkout разработка происхождение / разработкаТеперь, если мы воспользуемся командой ветвления, мы получим:
$ git branch -a* разработка
владелец
удаленно / происхождение / ГОЛОВА -> происхождение / мастер
пульты / происхождение / развитие
пульты / происхождение / мастер
Мы можем внести изменения в ветку разработки, зафиксировать изменения и затем отправить их с помощью команды разработки git push origin.
В заключении
При работе с GitHub и BitBucket вы можете использовать ссылку HTTPS или SSH для подключения к удаленному репозиторию. Таким образом, вы будете устанавливать свое происхождение для этих ссылок. Но принципы удаленной ветки такие же, как описано здесь.
Дальнейшее изучение:
- https: // git-scm.com / docs / git-branch
- https: // git-scm.com / book / en / v2 / Git-on-the-Server-Setting-Up-the-Server
- https: // помощь.github.com / article / добавление-существующего-проекта-в-github-с использованием-командной-строки /
- https: // помощь.github.ru / статьи / pushing-to-a-remote /