Git

Git Show отдалечени клонове

Git Show отдалечени клонове
Способността на Git да създава клонове лесно е чудесна характеристика. Въпреки това, когато се занимавате с локални и отдалечени клонове, това може да стане малко сложно. Нека създадем ситуация, при която ще създадем наше собствено хранилище на Git, което ще се държи като отдалечено репо. След това ще създадем и ангажираме клонове към нашето отдалечено хранилище от project_source. След това ще клонираме отдалеченото хранилище и ще играем с клоновете. Упражнението също трябва да ви даде представа за това как работят отдалечените хранилища като GitHub и BitBucket. Можете да го визуализирате по следния начин:

Нека започнем с хранилището на Git. Ще създадем папка, наречена проект.git и го инициализирайте, за да станете отдалеченото хранилище:

$ mkdir проект.git
$ cd проект.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 /
проект_източник /.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 отдалечено добавяне на произход / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
 
$ git push master master
Преброяване на обекти: 3, готово.
Писане на обекти: 100% (3/3), 213 байта | 0 байта / s, готово.
Общо 3 (делта 0), повторно използвана 0 (делта 0)
До / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
* [нов клон] master -> master

С командата git remote add origin създадохме връзката между проекта.git и project_source. С главната команда на git push origin сме преместили нашия главен клон към отдалеченото хранилище.

Нека проверим нашите клонове (все още в папката project_source):

$ git клон
* майстор
 
$ git клон -r
произход / майстор
 
$ git клон -a
* майстор
дистанционни / произход / главен

Първата команда показва само локалния клон. Опцията -r показва отдалечения клон. А опцията -a показва както локално, така и отдалечено.

Нека създадем няколко клона в нашата работна директория:

$ git развитие на клона
 
$ git клон корекция
 
$ git клон експериментално
 
$ git клон -a
развитие
експериментален
актуална корекция
* майстор
дистанционни / произход / главен

Създадохме клонове, наречени разработка, актуални корекции и експериментални. Те се показват в нашия списък с местни клонове. Но в дистанционното управление / произход има само главен клон, защото това е единственото, което натиснахме. Звездата (*) master означава, че все още сме в местния master клон. Нека да влезем в клона на разработката, да извършим промени и да ги изпратим в отдалеченото хранилище.

$ git checkout разработка
Превключено към „развитие“ на клон
 
$ echo abc> ReadMe.текст
 
$ git add -A
 
$ git commit -m "Модифициран клон за разработка"
[разработка dd9933e] Модифициран клон за разработка
1 файл е променен, 1 вмъкване (+)
 
$ git push развитие на произхода
Преброяване на обекти: 3, готово.
Писане на обекти: 100% (3/3), 257 байта | 0 байта / s, готово.
Общо 3 (делта 0), повторно използвана 0 (делта 0)
До / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
* [нов клон] развитие -> развитие

Нека проверим всички клонове сега:

$ git клон -a
* развитие
експериментален
актуална корекция
майстор
дистанционни / произход / разработка
дистанционни / произход / главен

Виждаме, че сме в местния клон за развитие, но има и отдалечен клон за развитие. Когато натиснахме промените си с разработката на git push origin, тя създаде клона на разработката в отдалечени / произход.

Нека сега да излезем от project_source и да намерим ново място, където да имаме нова папка. Тук ще клонираме отдалеченото хранилище със следната команда:

$ git clone / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
Клониране в „проект“ ..
Свършен.

Клонирахме ново копие, наречено проект от проект.git. Влезте в папката на проекта и проверете клоновете:

$ cd проект
 
$ git клон
* майстор

Когато Git направи първоначален клонинг от отдалечено хранилище, той получава само главния клон. Ако използваме опцията -a, виждаме:

$ git клон -a
* майстор
дистанционни / произход / HEAD -> произход / главен
дистанционни / произход / разработка
дистанционни / произход / главен

Забележете, че няма клон за местно развитие. Освен това никога не сме премествали актуални корекции и експериментални клонове от project_source към project.git, така че не ги виждаме. Отдалеченото хранилище има главни клонове и клонове за развитие (Remotes / origin / HEAD -> origin / master не е клон, а просто ви казва къде сочи HEAD).

Нека въведем клона за развитие в нашата работна среда:

$ git fetch --all
Извличане на произход
 
$ git checkout разработка
Развитие на клонове, създадено за проследяване на отдалечено развитие на клонове от произхода.
Преминах към нов клон „развитие“

Ако използвате по-стара версия на Git, може да се наложи да използвате:

$ git checkout произход / разработка на разработката

Сега, ако използваме командата на клона, получаваме:

$ git клон -a
* развитие
майстор
дистанционни / произход / HEAD -> произход / главен
дистанционни / произход / разработка
дистанционни / произход / главен

Можем да направим промени в клона на разработката, да извършим промените и след това да го натиснем с помощта на командата за разработка git push origin.

В заключение

Когато работите с GitHub и BitBucket, може да използвате HTTPS или SSH връзка за свързване с отдалеченото хранилище. Така че ще настройвате произхода си към тези връзки. Но принципите на отдалечения клон са същите, както са описани тук.

Допълнително проучване:

Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...
Пренастройте бутоните на мишката си по различен начин за различен софтуер с X-Mouse Button Control
Може би се нуждаете от инструмент, който може да промени контрола на мишката с всяко приложение, което използвате. Ако случаят е такъв, можете да изпр...
Преглед на безжична мишка на Microsoft Sculpt Touch
Наскоро прочетох за Microsoft Sculpt Touch безжична мишка и реших да я купя. След като го използвах известно време, реших да споделя опита си с него. ...