2.5 Bazoj de Git - Laborante kun Remotes
Por povi kunlabori en ajna Git projekto, vi devas scii kiel administri vian fora deponejoj. Fora deponejoj estas versioj de via projekto kiu estas loĝigitaj en Interreto aŭ reto ie. Vi povas havi plurajn el ili, ĉiu el kiu ĝenerale estas aŭ nur legado aŭ legado / skribo por vi.
Kunlabori kun aliaj implikas administri tiujn fora deponejoj kaj
puŝante kaj tirante datumojn al kaj de ili, kiam vi bezonas kunhavigi
laboro.
Administranta fora deponejoj inkludas scii aldoni fora deponejoj,
forigi Remotes ke ne plu estas valida, administri diversaj foraj branĉoj
kaj difini ilin kiel estanta spurita aŭ ne, kaj pli. En tiu sekcio, ni kovri tiujn fora-administrado kapabloj.
Se vi kloni deponejo, la komando aŭtomate aldonas ke foraj deponejo sub la nomo origino. Do,
Se vi havas branĉon instalita spuri fora branĉo (vidu la sekvan sekcion kaj Ĉapitro 3 por pli informo), vi povas uzi la
Tio estas simpla ekzemplo vi supozeble trovos. Kiam vi uzas Git pli peze tamen vi vidu multe pli informo de
Se vi volas forigi referenco ial - vi kopiis la servilo aŭ jam ne uzas apartan spegulo, aŭ eble kontribuanto ne kontribuante plu - vi povas uzi
Montrante Via Remotes
Vidi kiun foraj serviloj vi agordis, vi povas kuri lagit remote komando. Ĝi listigas la shortnames de ĉiu fora tenilo vi specifitaj. Se vi klonita via deponejo, vi devus almenaŭ vidi origino - kiu estas la defaŭlta nomo Git donas la servilo vi klonita de: $ git clone git://github.com/schacon/ticgit.git Initialized empty Git repository in /private/tmp/ticgit/.git/ remote: Counting objects: 595, done. remote: Compressing objects: 100% (269/269), done. remote: Total 595 (delta 255), reused 589 (delta 253) Receiving objects: 100% (595/595), 73.31 KiB | 1 KiB/s, done. Resolving deltas: 100% (255/255), done. $ cd ticgit $ git remote origin
Vi povas ankaŭ specifi -v , kiu montras vin la URL kiu Git estas stokita por la shortname esti vastigita al: $ git remote -v origin git://github.com/schacon/ticgit.git (fetch) origin git://github.com/schacon/ticgit.git (push)
Se vi havas pli ol unu fora, la komando listigas ĉiujn. Ekzemple, mia Grit enciklopedio aspektas io tiamaniere. $ cd grit $ git remote -v bakkdoor git://github.com/bakkdoor/grit.git cho45 git://github.com/cho45/grit.git defunkt git://github.com/defunkt/grit.git koke git://github.com/koke/grit.git origin git@github.com:mojombo/grit.git
Do oni povas tiri kontribuoj de iuj da tiuj uzantoj bela facile. Sed rimarkas ke nur la origino fora estas SSH URL, do ĝi estas la nura unu mi povas puŝi al (ni kovras kial tiu estas en Ĉapitro 4). Aldonante Izolita Deponejoj
Mi menciis kaj donitaj iuj manifestacioj de aldoni fora deponejoj en antaŭaj alineoj, sed jen kiel fari ĝin eksplicite. Por aldoni novan fora Git-deponejo kiel shortname vi povas referenci facile, kurigit remote add [shortname] [url] : $ git remote origin $ git remote add pb git://github.com/paulboone/ticgit.git $ git remote -v origin git://github.com/schacon/ticgit.git pb git://github.com/paulboone/ticgit.git
Nun vi povas uzi la kordo pb la komandlinio anstataŭ la tutaj URL. Ekzemple, se vi volas venigi ĉiujn informojn kiuj Paul havas sed ke vi ankoraŭ ne havas en via deponejo, vi povas kuri git fetch pb : $ git fetch pb remote: Counting objects: 58, done. remote: Compressing objects: 100% (41/41), done. remote: Total 44 (delta 24), reused 1 (delta 0) Unpacking objects: 100% (44/44), done. From git://github.com/paulboone/ticgit * [new branch] master -> pb/master * [new branch] ticgit -> pb/ticgit
Paŭlo mastro branĉo estas atingebla loke kiel pb/master - vi povas kunfandi ĝin en unu el viaj branĉoj, aŭ vi povas kontroli loka branĉo ĉe tiu punkto se vi volas inspekti ĝin. Ricevado kaj Pulling de Via Remotes
Kiel vi ĵus vidis, ricevi datumojn el via fora projektoj, vi povas kuri: $ git fetch [remote-name]
La komando eliras al tiu fora projekto kaj tiras malsupren ĉiujn datumojn de tiu fora projekto kiu ne havas ankoraŭ. Post kiam vi faros tion, vi devas havi referencojn al ĉiuj branĉoj de tiu fora, kiun vi povas kunfandi en aŭ inspekti iam. (Ni transiru kion brancxoj estas kaj kiel uzi ilin en multe pli detale en ĉapitro 3.) Se vi kloni deponejo, la komando aŭtomate aldonas ke foraj deponejo sub la nomo origino. Do,
git fetch origin akiras neniun novan verkon kiu estis puŝita al tiu servilo ekde vi klonita (aŭ lasta prenis de) i. Estas grave noti, ke la fetch
komando tiras la datumojn al via loka deponejo - ĝi ne aŭtomate
kunfandi ŝin kun iu el via laboro aŭ redakti kion vi aktuale prilaboras. Vi devas mem kunfandi ĝin permane en via laboro kiam vi estas preta. Se vi havas branĉon instalita spuri fora branĉo (vidu la sekvan sekcion kaj Ĉapitro 3 por pli informo), vi povas uzi la
git pull komando aŭtomate fetch kaj tiam kunfalas fora branĉo en vian nuna branĉo. Tio povas esti facila aŭ pli komforta laborfluo por vi; kaj defaŭlte, la git clone
komando aŭtomate instalas via loka mastro branĉo spuri la fora mastro
branĉo sur la servilo vi klonita de (supozante la fora havas mastron
branĉo). Kurante git pull
ĝenerale akiras datumojn de la servilo vi originale klonita de kaj
aŭtomate provas kunfandi ĝin en la kodo kiun vi aktuale prilaboras. Puŝanta al Via Remotes
Kiam vi havas vian projekton ĉe punkto kiun vi volas dividi, vi devas puŝi ŝin kontraŭflue. La komando por tio estas simpla:git push [remote-name] [branch-name] . Se vi volas puŝi via mastro branĉo al via origin
servilo (denove, klonado ĝenerale starigas ambaŭ el tiuj nomoj por vi
aŭtomate), tiam vi povas kuri ĉi puŝi vian laboron reen ĝis la servilo: $ git push origin master
Ĉi komando funkcias nur se vi klonita de servilo al kiu vi havas skribpermeson kaj se neniu puŝis dume. Se vi kaj alia clon samtempe kaj ili puŝi kontraŭflue kaj tiam vi puŝi kontraŭflue, vian puŝo estos prave esti rifuzita. Vi devos disbatos ilian laboron unua kaj korpigi ĝin en via antaux vi esti permesita puŝi. Vidu ĉapitron 3 por pli detala informo pri kiel puŝi al foraj serviloj. Inspekti Izolita
Se vi volas vidi pli da informoj pri aparta fora, vi povas uzi lagit remote show [remote-name] komando. Se vi kuri ĉi komando kun aparta shortname, kiel origin , vi ricevas ion kiel jene: $ git remote show origin * remote origin URL: git://github.com/schacon/ticgit.git Remote branch merged with 'git pull' while on branch master master Tracked remote branches master ticgit
Ĝi listigas la URL por la malproksima deponejo krom la sekvado branĉo informo. La komando helpfully informas vin ke se vi estas sur la mastro branĉo kaj vi kuros git pull , ĝi aŭtomate kunfandi en la mastro branĉo sur la fora post ĝi akiras ĉiuj la fora referencoj. Ĝi ankaŭ listigas ĉiujn fora referencoj ĝi tiris malsupren. Tio estas simpla ekzemplo vi supozeble trovos. Kiam vi uzas Git pli peze tamen vi vidu multe pli informo de
git remote show : $ git remote show origin * remote origin URL: git@github.com:defunkt/github.git Remote branch merged with 'git pull' while on branch issues issues Remote branch merged with 'git pull' while on branch master master New remote branches (next fetch will store in remotes/origin) caching Stale tracking branches (use 'git remote prune') libwalker walker2 Tracked remote branches acl apiv2 dashboard2 issues master postgres Local branch pushed with 'git push' master:master
Admono spektakloj kiujn branĉo aŭtomate puŝis kiam vi kuros git push sur certaj branĉoj.
Ĝi ankaŭ montras al vi kiujn foraj branĉoj sur la servilo vi ankoraŭ ne
havas, kion foraj branĉoj vi havas kiuj estis forigitaj de la servilo,
kaj multoblaj branĉoj kiuj estas aŭtomate kunfanditaj kiam vi kuros git pull . Forigado kaj Renomado Remotes
Se vi volas renomi referenco, en pli novaj versioj de Git vi povas kurigit remote rename ŝanĝi fora la shortname. Ekzemple, se vi volas renomi pb al paul , vi povas fari tion kun git remote rename : $ git remote rename pb paul $ git remote origin paul
Menciindas ke tiu ŝanĝas vian fora branĉo nomojn ankaŭ. Kio kutimis esti referencataj en pb/master estas nun ĉe paul/master . Se vi volas forigi referenco ial - vi kopiis la servilo aŭ jam ne uzas apartan spegulo, aŭ eble kontribuanto ne kontribuante plu - vi povas uzi
git remote rm : $ git remote rm paul $ git remote origin
Nenhum comentário:
Postar um comentário