-
1. Почеток
- 1.1 За верзиска контрола
- 1.2 Кратка историја на Git
- 1.3 Основи на Гит
- 1.4 Командната линија
- 1.5 Инсталирање на Git
- 1.6 First-Time Git Setup
- 1.7 Getting Help
- 1.8 Заклучок
-
2. Основите на Git
-
3. Гранење во Git
- 3.1 Гранење објаснето
- 3.2 Основно разгранување и спојување
- 3.3 Branch Management
- 3.4 Работни процеси
- 3.5 Далечински гранки
- 3.6 Ребаза
- 3.7 Заклучок
-
4. Git на Сервер
- 4.1 Протоколите
- 4.2 Добивање на Git на сервер
- 4.3 Генерирање на вашиот SSH јавен клуч
- 4.4 Поставување на серверот
- 4.5 Гит демон
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Опции за домаќини на трети лица
- 4.10 Заклучок
-
5. Дистрибуиран Git
- 5.1 Дистрибуирани работни процеси
- 5.2 Придонес кон проект
- 5.3 Приватен мал тим
- 5.4 Одржување на проект
- 5.5 Заклучок
-
6. GitHub
-
7. Git Алатки
- 7.1 Revision Selection
- 7.2 Интерактивно стажирање
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Напредно спојување
- 7.9 Rerere
- 7.10 Дебагирање со Git
- 7.11 Submodules
- 7.12 Збивање
- 7.13 Заменување
- 7.14 Складирање на ингеренции
- 7.15 Заклучок
-
8. Персонализација на Git
- 8.1 Git Configuration
- 8.2 Git Атрибути
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Заклучок
-
9. Git и други системи
- 9.1 Git како Клиент
- 9.2 Мигрирање кон Git
- 9.3 Заклучок
-
10. Внатрешноста на Git
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Заклучок
-
A1. Appendix A: Git во други околини
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in Powershell
- A1.7 Заклучок
-
A2. Appendix B: Вметнување на Git во вашите апликации
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
-
A3. Appendix C: Git команди
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
2.5 Основите на Git - Working with Remotes
Working with Remotes
За да може да соработувате во било кој проект на Git, треба да знаете како да управувате со вашите далечински складишта. Далечински репозиториуми се верзии на вашиот проект, кои се хостирани на интернет или мрежа некаде. Можете да имате неколку од нив, од кои секоја генерално е или само за читање или за читање / запишување за вас. Соработката со други вклучува управување со овие оддалечени складишта и притискање и влечење на податоци до и од нив кога треба да ја споделите работата. Управувањето со оддалечените складишта вклучува познавање како да се додадат далечински складишта, да се отстранат далечински управувачи кои повеќе не се валидни, да управуваат со разни оддалечени гранки и да ги дефинираат како да се следат или не и повеќе. Во овој дел, ние ќе ги покриеме некои од овие вештини за далечинско управување.
Note
|
Remote repositories can be on your local machine.
Сосема е можно дека можете да работите со "remote"(далечинско) складиште кое всушност е на истиот домаќин. Зборот “remote” не значи дека складиштето е на друго место на мрежата или на интернет, само дека е на друго место. Работата со такво оддалечен складиште би ги вклучила сите стандардни операции за туркање, влечење и преземање, како и со било кој друг далечински управувач. |
Showing Your Remotes
За да видите кои оддалечени сервери сте конфигурирале, можете да ја извршите командата git remote '.(((git commands, remote)))
Ги наведува кратенките за секоја оддалечена рачка што сте ја навеле.
Ако сте го клонирале вашето складиште, треба барем да видите `origin
- тоа е стандардното име Git дава на серверот што го клонирате од:
$ git clone https://github.com/schacon/ticgit
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
$ cd ticgit
$ git remote
origin
Исто така можете да наведете -v
, со што ќе ги прикажете URL-то што ги зачувал Git за краткото име кое се користи при читање и пишување на тој далечински управувач:
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
Ако имате повеќе од еден далечински управувач, командата ги наведува сите. На пример, складиште со повеќе далечински управувачи за работа со неколку соработници може да изгледа вака.
$ cd grit
$ git remote -v
bakkdoor https://github.com/bakkdoor/grit (fetch)
bakkdoor https://github.com/bakkdoor/grit (push)
cho45 https://github.com/cho45/grit (fetch)
cho45 https://github.com/cho45/grit (push)
defunkt https://github.com/defunkt/grit (fetch)
defunkt https://github.com/defunkt/grit (push)
koke git://github.com/koke/grit.git (fetch)
koke git://github.com/koke/grit.git (push)
origin git@github.com:mojombo/grit.git (fetch)
origin git@github.com:mojombo/grit.git (push)
Ова значи дека можеме лесно да ги привлечеме прилозите од кој било од овие корисници. Можеме дополнително да имаме дозвола да извршиме притисок врз едно или повеќе од овие, иако ние не можеме да го кажеме тоа тука.
Забележете дека овие далечински управувачи користат разни протоколи; ние ќе покриеме повеќе за ова во Добивање на Git на сервер.
Додавање далечински репозиториуми
Ние споменавме и дадовме неколку демонстрации за тоа како командата git clone
имплицитно го додава далечинскиот управувач` потекло` за вас.
Еве како експлицитно да додадете нов далечински управувач.
За да додадете ново далечинско Git складиште како кратко име можете лесно да се повикате, извршете git remote add <shortname> <url>
:
$ git remote
origin
$ git remote add pb https://github.com/paulboone/ticgit
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
pb https://github.com/paulboone/ticgit (fetch)
pb https://github.com/paulboone/ticgit (push)
Сега можете да ја користите низата pb
на командната линија наместо целата URL.
На пример, ако сакате да добиете сите информации што ги има Пол, но дека сеуште не сте во вашето складиште, можете да стартувате git fetch pb
:
$ git fetch pb
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 43 (delta 10), reused 31 (delta 5)
Unpacking objects: 100% (43/43), done.
From https://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit
Главната гранка на Павле сега е достапна локално како pb / master
- можете да ја споите во една од вашите гранки, или можете да проверите локална гранка во тој момент ако сакате да ја испитате.
(Ние ќе одиме над она што гранки се и како да ги користите во многу повеќе детали во Гранење во Git.)
Преземање и влечење од Вашите дистанции
Како што само видовте, за да добиете податоци од оддалечените проекти, можете да го стартувате:
$ git fetch <remote>
Командата излегува на тој оддалечен проект и ги повлекува сите податоци од тој оддалечен проект што го немате. Откако ќе го направите ова, треба да имате референции за сите гранки од тој далечински управувач, во кој можете да се спојат или да ги проверите во секое време.
Ако клонирате складиште, командата автоматски го додава тоа далечинско складиште под името "origin".
Значи, git fetch origin
ја зема секоја нова работа што е притиснат на тој сервер, бидејќи сте го клонирале (или последново го превзеле).
Важно е да се напомене дека командата git fetch
само ги презема податоците во вашето локално складиште - не автоматски се спојува со некоја од вашите дела или го модифицира она на што работи во моментов.
Треба да го споите рачно во вашата работа кога ќе бидете подготвени.
Ако вашата актуелна гранка е поставена за да се следи оддалечената гранка (за повеќе информации погледнете го следниот дел и Гранење во Git), можете да ја користите командата git pull
за автоматски да донесат и потоа спојте ја таа далечна гранка во вашата актуелна гранка.
Ова може да биде полесен или поудобен работен процес за вас; и по дифолт, командата git clone
автоматски ја поставува вашата локална господарска гранка да ја следи оддалечената господарска гранка (или што и да е позната како стандардна гранка) на серверот од кој сте клонирани.
Извршувањето git pull
генерално ги генерира податоците од серверот што првично го клонираа и автоматски се обидува да го спои во кодот на кој работите во моментов.
Притискање до Вашите дистанции
Кога го имате вашиот проект во точка што сакате да ја споделите, мора да го притиснете нагоре по течението.
Командата за ова е едноставна: git push <origin> <branch>
.
Ако сакате да го притиснете вашиот господар филијала на вашиот "origin" сервер (повторно, клонирањето обично ги поставува и двете од тие имиња за вас автоматски), тогаш можете да го извршите ова за да извршите притисок врз било какви обврски што сте ги направиле назад до серверот:
$ git push origin master
Оваа команда работи само ако сте клонирани од сервер на кој имате пристап за запишување и ако никој во меѓувреме не го турна. Ако вие и некој друг клонирате во исто време и тие ќе го потиснете нагоре, а потоа ќе притиснете нагоре, вашиот притисок со право ќе биде одбиен. Ќе мора прво да ја донесам нивната работа и да ја вклучите во твое, пред да ви биде дозволено да им помогнам. Видете Гранење во Git за подетални информации за тоа како да им помогнам на оддалечените сервери.
Инспекција на далечински управувач
Ако сакате да видите повеќе информации за одреден далечински управувач, можете да ја користите командата git remote show <remote>
Ако ја извршите оваа команда со одредено кратко име, како што е "origin", добивате нешто вака:
$ git remote show origin
* remote origin
Fetch URL: https://github.com/schacon/ticgit
Push URL: https://github.com/schacon/ticgit
HEAD branch: master
Remote branches:
master tracked
dev-branch tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
Го наведува URL-то за далечинското складиште, како и информации за филијала за следење.
Командата ви помага да ви кажам дека ако сте на главната гранка и ја стартувате git pull
, таа автоматски ќе се спои во главната гранка на далечинскиот управувач откако ќе ги преземе сите далечински референци.
Исто така ги набројува сите далечински референци што ги повлече.
Тоа е едноставен пример со кој најверојатно ќе наидете. Меѓутоа, кога повеќе го користите Git, може да видите многу повеќе информации од `git remote show ':
$ git remote show origin
* remote origin
URL: https://github.com/my-org/complex-project
Fetch URL: https://github.com/my-org/complex-project
Push URL: https://github.com/my-org/complex-project
HEAD branch: master
Remote branches:
master tracked
dev-branch tracked
markdown-strip tracked
issue-43 new (next fetch will store in remotes/origin)
issue-45 new (next fetch will store in remotes/origin)
refs/remotes/origin/issue-11 stale (use 'git remote prune' to remove)
Local branches configured for 'git pull':
dev-branch merges with remote dev-branch
master merges with remote master
Local refs configured for 'git push':
dev-branch pushes to dev-branch (up to date)
markdown-strip pushes to markdown-strip (up to date)
master pushes to master (up to date)
Оваа команда покажува која гранка автоматски се турка кога ќе стартувате git push
додека на одредени гранки.
Таа исто така ви покажува кои оддалечени гранки на серверот што сеуште не ги имате, кои оддалечени гранки имате, кои сте ги отстраниле од серверот, и повеќе локални гранки кои можат автоматски да се спојат со нивната филијала за следење на далечина, кога ќе извршите ` git pull`.
Преименување и отстранување на дистанци
Може да го стартувате git далечинското преименување
за да го промените краткото име на далечинскиот управувач.
На пример, ако сакате да го преименувате pb
во` paul`, можете да го сторите тоа со git remote rename
:
$ git remote rename pb paul
$ git remote
origin
paul
Вреди да се спомене дека ова ги менува и сите имиња на филијали за далечинско следење.
Она што се користи за референцирање на pb/master
сега е во paul/master
.
Ако сакате да го отстраните далечинскиот управувач поради некоја причина - сте го преместиле серверот или повеќе не користите одредено огледало, или можеби соработникот не придонесува повеќе - можете да користите "git remote remove" или "git remote rm`:
$ git remote remove paul
$ git remote
origin
Откако ќе го избришете упатувањето на далечинскиот управувач на овој начин, сите филијали за далечинско следење и поставките за конфигурација поврзани со тој далечински управувач исто така се бришат.