Uzak Git ┼čubesini nas─▒l kontrol edebilirim?


Al─▒nan cevaba git


Birisi arad─▒ bir ┼čube itti test ile git push origin test payla┼č─▒lan bir platforma. ┼×ubeyi ile g├Ârebiliyorum git branch -r .

┼×imdi uzak test ┼čubeyi kontrol etmeye ├žal─▒┼č─▒yorum .

Denedim:

  • git checkout test bu hi├žbir ┼čey yapmaz

  • git checkout origin/test verir * (no branch) . Bu kafa kar─▒┼čt─▒r─▒c─▒. "Dals─▒z" nas─▒l olabilirim?

Uzak Git ┼čubesini nas─▒l kontrol edebilirim?


6357









Cevap say─▒s─▒n─▒ say: 29






G├╝ncelle┼čtirme

Jakub'─▒n cevab─▒ asl─▒nda bu konuda geli┼čtirir. Git s├╝r├╝mleri Ôëą 1.6.6, yaln─▒zca bir uzaktan kumandayla, ┼čunlar─▒ yapabilirsiniz:

 git fetch
git checkout test
 

Kullan─▒c─▒ masukomi bir yorumda i┼čaret etti─či gibi, git checkout test e─čer birden fazla uzaktan kumanda varsa, modern git ├žal─▒┼čmayacakt─▒r. Bu durumda kullan─▒m

 git checkout -b test <name of remote>/test
 

veya steno

 git checkout -t <name of remote>/test
 

Eski cevap

Yerel olarak uzak bir dalda ├žal─▒┼čmaya ba┼člamadan ├Ânce, a┼ča─č─▒daki cevaplarda a├ž─▒kland─▒─č─▒ ┼čekilde alman─▒z gerekir.

┼×ube almak i├žin yapman─▒z gerekenler:

 git fetch origin
 

Bu, t├╝m uzak ┼čubeleri sizin i├žin getirecektir. ├ľdeme i├žin uygun ┼čubeleri g├Ârebilirsiniz:

 git branch -v -a
 

Uzaktaki ┼čubeler elinizde oldu─čunda, ┼čimdi ilgilendi─činiz ┼čubeye bakman─▒z ve size yerel bir ├žal─▒┼čma kopyas─▒ vermeniz gerekir:

 git checkout -b test origin/test
 

8751







Sidenote: Modern Git (> = 1.6.6 ) ile sadece

 git checkout test
 

('test' de─čil 'ba┼člang─▒├ž ÔÇőÔÇő/ test' olmad─▒─č─▒n─▒ not edin) b├╝y├╝l├╝ DWIM ger├žekle┼čtirin ve sizin i├žin yerel ┼čubenin 'testini' olu┼čturun.


* (no branch) ─░├žinde git branch ├ž─▒k─▒┼č vas─▒tas─▒ sen s├Âzde "m├╝stakil BA┼×" durumunda (BA┼× noktalar─▒ do─črudan taahh├╝t ve baz─▒ yerel ┼čubesine sembolik ba┼čvuru de─čil kadar), ads─▒z dal ├╝zerinde oldu─čunu. Bu adland─▒r─▒lmam─▒┼č dalda baz─▒ taahh├╝tlerde bulunduysan─▒z, ge├žerli da─č─▒t─▒mdan yerel ┼čubeyi her zaman olu┼čturabilirsiniz:

 git checkout -b test HEAD
 

1221







Bu durumda, muhtemelen test uzak test dal─▒ takip eden yerel bir ┼čube olu┼čturmak istersiniz :

 $ git branch test origin/test
 

├ľnceki s├╝r├╝mlerinde, git a├ž─▒k bir --track se├žene─če ihtiyac─▒n─▒z vard─▒ , ancak bu, uzak bir ┼čubeden dalland─▒─č─▒n─▒zda varsay─▒land─▒r.


543


2009-11-23





Kabul edilen cevap sizin i├žin ├žal─▒┼čm─▒yor mu?

─░lk ve se├žili cevap teknik olarak do─čru olsa da , hen├╝z t├╝m nesneleri almad─▒ysan─▒z ve uzak havuzdan referans alm─▒yorsan─▒z. Bu durumda, a┼ča─č─▒daki hatay─▒ al─▒rs─▒n─▒z:

 $ git checkout -b remote_branch origin/remote_branch
 

fatal: git checkout: g├╝ncelleme yollar─▒, anahtarlama ┼čubeleriyle uyumlu de─čil.
Taahh├╝t olarak ├ž├Âz├╝lemeyen 'origin / remote_branch' ├ž─▒k─▒┼č─▒n─▒ yapmay─▒ d├╝┼č├╝nd├╝n├╝z m├╝?

├ç├Âz├╝m

Bu mesaj─▒ al─▒rsan─▒z, ├žal─▒┼čt─▒rmadan ├Ânce uzak havuzun ad─▒n─▒ git fetch origin nerede origin bulmal─▒s─▒n─▒z git checkout remote_branch . ─░┼čte cevaplar─▒ ile tam bir ├Ârnek:

 $ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'
 

G├Ârd├╝─č├╝n├╝z gibi, ko┼ču git fetch origin yerel makinemizi takip etmek i├žin hen├╝z ayarlanmad─▒─č─▒m─▒z uzak ┼čubeleri ald─▒. Oradan, ┼čimdi uzak bir ┼čubeye refere sahip oldu─čumuz i├žin, basit├že ko┼čabiliriz git checkout remote_branch ve uzaktan izlemenin avantajlar─▒n─▒ elde ederiz.


457







Yukar─▒daki ├ž├Âz├╝m├╝ denedim, ama i┼če yaramad─▒. Bunu dene, i┼če yar─▒yor:

 git fetch origin 'remote_branch':'local_branch_name'
 

Bu, uzak dal─▒ al─▒r ve (daha ├Ânce mevcut de─čilse) yeni bir yerel dal olu┼čturur local_branch_name ve i├žindeki uzak olan─▒ izler.


240







Bu, adland─▒r─▒lmam─▒┼č bir men┼če i├žin DWIM olacakt─▒r ( belgeler ):

 $ git checkout -t remote_name/remote_branch
 

Yeni bir uzaktan kumanda eklemek i├žin ├Ânce a┼ča─č─▒dakileri yapman─▒z gerekir:

 $ git remote add remote_name location_of_remote
$ git fetch remote_name
 

Birincisi Git'e uzaktan kumanda oldu─čunu s├Âyler, ikincisi ise emirleri al─▒r.


107







kullan─▒n:

 git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>
 

─░yi huylu davamda di─čer cevaplar modern Git ile ├žal─▒┼čm─▒yor. Uzaktaki ┼čube yeniyse ├Ânce bunu ├žekmeniz gerekebilir, ancak bu durumu kontrol etmedim.


101







Tamam , cevab─▒ kolay ... ┼×ubeyi temelde g├Âr├╝yorsunuz ama hen├╝z yerel bir kopyas─▒n─▒z yok! ...

┼×ubeye ihtiyac─▒n─▒z var fetch ...

Sadece ┼čube getirip sonra da ├Âdeme yapabilirsiniz, bunu yapmak i├žin a┼ča─č─▒daki bir sat─▒r komutunu kullan─▒n:

 git fetch && git checkout test
 

Farkl─▒l─▒klar─▒ payla┼čman─▒z, nas─▒l fetch ├žal─▒┼čt─▒─č─▒na ve bunun nas─▒l farkl─▒ oldu─čuna bakman─▒z i├žin a┼ča─č─▒daki resmi de olu┼čturdum pull :


Git getir


82







Git deposunu klonlamak i├žin ┼čunlar─▒ yap─▒n:

 git clone <either ssh url /http url>
 

Yukar─▒daki komut t├╝m dallar─▒ kontrol eder, ancak yaln─▒zca master ┼čube ba┼člat─▒l─▒r. Di─čer ┼čubeleri kontrol etmek istiyorsan─▒z, ┼čunlar─▒ yap─▒n:

 git checkout -t origin/future_branch (for example)
 

Bu komut uzak ┼čubeyi kontrol eder ve yerel ┼čubenizin ad─▒ uzak ┼čubeyle ayn─▒ olacakt─▒r.

├ľdeme s─▒ras─▒nda yerel ┼čube ad─▒n─▒z─▒ ge├žersiz k─▒lmak istiyorsan─▒z:

 git checkout -t -b enhancement origin/future_branch
 

┼×imdi yerel ┼čube ad─▒n─▒z enhancement , ancak uzak ┼čube ad─▒n─▒z future_branch .

belgeleme


53







Deneyebilirsin

 git fetch remote
git checkout --track -b local_branch_name origin/branch_name
 

veya

 git fetch
git checkout -b local_branch_name origin/branch_name
 

36


2014-03-24





─░lk ├Ânce yapman─▒z gerekenler:

git fetch # ┼×ube ad─▒n─▒ bilmiyorsan─▒z

 git fetch origin branch_name
 

─░kinci olarak, uzak ┼čubenizi b├Âlgenizdeki b├Âlgelere g├Âre kontrol edebilirsiniz:

 git checkout -b branch_name origin/branch_name
 

-b se├žti─činiz uzak ┼čubeden belirtilen adda yeni dal olu┼čturacakt─▒r.


31







Komutlar─▒

 git fetch --all
git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name>
 

e┼čittir

  git fetch --all
 

ve sonra

  git checkout -b fixes_for_dev origin/development
 

─░kisi yaratacak latest fixes_for_dev dan development


28







A┼ča─č─▒daki komutu kullan─▒yorum:

 git checkout --track origin/other_remote_branch
 

27







Dal origin uzaktan kumandadan ba┼čka bir ┼čey ├╝zerindeyse , a┼ča─č─▒dakileri yapmak isterim:

 $ git fetch
$ git checkout -b second/next upstream/next
 

Bu next , upstream uzaktan kumandadaki ┼čubeyi, ad─▒ verilen yerel bir ┼čubeye teslim edecektir second/next . Bu, e─čer zaten ad─▒nda bir yerel ┼čubeniz varsa, ├žat─▒┼čma olmayacak demektir.

 $ git branch -a
* second/next
  remotes/origin/next
  remotes/upstream/next
 

24


2013-03-01





bu cevaplar─▒n hi├žbiri benim i├žin ├žal─▒┼čt─▒. bu ├žal─▒┼čt─▒:

git checkout -b feature/branch remotes/origin/feature/branch


17







error: pathspec 'desired-branch' did not match any file(s) known to git. Yukar─▒daki t├╝m ├Ânerileri g├Ârerek bir duruma s─▒k─▒┼č─▒p kald─▒m . Git 1.8.3.1 versiyonunday─▒m.

Yani bu benim i├žin ├žal─▒┼čt─▒ :

 git fetch origin desired-branch
git checkout -b desired-branch FETCH_HEAD
 

Arkas─▒ndaki a├ž─▒klama, uzak ┼čubeyi ├žekerken FETCH_HEAD'e al─▒nd─▒─č─▒n─▒ fark ettim:

 $ git fetch origin desired-branch
From github.com:MYTEAM/my-repo
    * branch            desired-branch -> FETCH_HEAD
 

17







git branch -r nesne ad─▒n─▒n ge├žersiz oldu─čunu s├Âyl├╝yor, ├ž├╝nk├╝ o ┼čube ad─▒ Git'in yerel ┼čube listesinde de─čil. Yerel ┼čube listenizi men┼čei ile ┼ču ┼čekilde g├╝ncelleyin:

 git remote update
 

Ard─▒ndan uzaktaki ┼čubenizi tekrar kontrol etmeyi deneyin.

Bu benim i├žin ├žal─▒┼čt─▒.

T├╝m uzak dallarda git fetch ├žekti─čine inan─▒yorum , bu orijinal posterin istedi─či ┼čey de─čildi.


16







git fetch && git checkout your-branch-name


15







Sadece git checkout uzak dal─▒n ad─▒ ile ├žal─▒┼čt─▒r─▒n . Git , uzaktan kumanday─▒ izleyen yerel bir ┼čube olu┼čturacakt─▒r :

 git fetch
git checkout test
 

Ancak, bu dal ad─▒ birden fazla uzaktan kumandada bulunursa, Git kullanaca─č─▒n─▒ bilmedi─činden bu i┼če yaramaz. Bu durumda a┼ča─č─▒dakilerden birini kullanabilirsiniz:

 git checkout --track origin/test
 

veya

 git checkout -b test origin/test
 

Gelen 2.19 , Git ├Â─črenilen checkout.defaultRemote b├Âyle bir belirsizli─čin ├ž├Âz├╝mlerken varsay─▒lan bir uzaktan kumanda belirten yap─▒land─▒rmay─▒.


13







git remote show <origin name> Komutu (un-izlenen dallar dahil) t├╝m ┼čubeleri listeler. Sonra getirmeniz gereken uzak dal ad─▒n─▒ bulabilirsiniz.

├ľrnek:

 $ git remote show origin
 

Uzak dallar─▒ almak i├žin bu ad─▒mlar─▒ kullan─▒n:

 git fetch <origin name> <remote branch name>:<local branch name>
git checkout <local branch name > (local branch name should the name that you given fetching)
 

├ľrnek:

 $ git fetch origin test:test
$ git checkout test
 

11







Di─čer ├žocuklar ve k─▒zlar ├ž├Âz├╝mleri veriyor, ama belki nedenini s├Âyleyebilirim.

hi├žbir ┼čey yapmayan git ├Âdeme testi

Does nothing e┼čit de─čil doesn't work , bu y├╝zden terminalinize 'git checkout test' yaz─▒p enter tu┼čuna bast─▒─č─▒n─▒zda, hi├žbir mesaj g├Âr├╝nmez ve hi├žbir hata olu┼čmaz. Hakl─▒ m─▒y─▒m

Cevap 'evet' ise, sebebini size s├Âyleyebilirim.

Bunun nedeni, ├žal─▒┼čma a─čac─▒n─▒zda 'test' ad─▒nda bir dosya (veya klas├Âr) olmas─▒d─▒r.

Ne zaman git checkout xxx ├ž├Âz├╝mlenir,

  1. Git xxx ilk ├Ânce bir ┼čube ad─▒ olarak g├Âr├╝n├╝yor , ancak test ad─▒nda bir dal yok.
  2. Sonra Git xxx bir yol oldu─čunu d├╝┼č├╝n├╝yor ve neyse ki (veya ne yaz─▒k ki) test ad─▒nda bir dosya var. Yani dosyadaki git checkout xxx herhangi bir de─či┼čikli─či atmak anlam─▒na gelir xxx .
  3. xxx Ya da adland─▒r─▒lm─▒┼č bir dosya yoksa, Git xxx baz─▒ kurallara g├Âre olu┼čturmaya ├žal─▒┼čacakt─▒r . Kurallardan biri ad─▒nda bir ┼čube olu┼čturmak oldu─čunu xxx e─čer remotes/origin/xxx var.

8







Yeni olu┼čturulan ┼čubelere ula┼čmak

 git fetch
 

Ba┼čka bir ┼čubeye ge├žmek i├žin

 git checkout BranchName
 

8







Uzaktan kumandadan al ve ┼čubeyi kontrol et.

 git fetch <remote_name> && git checkout <branch_name> 
 

├ľrne─čin:

git men┼čei ve & git git ├Âdeme ├Âzelli─či / XYZ-1234-Ekleme uyar─▒lar─▒ getir


8







T├╝m uzak dallar─▒ a┼ča─č─▒daki Bash beti─či ile izlemeye ba┼člayabilirsiniz:

 #!/bin/bash
git fetch --all
for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`
  do git branch -f --track "$branch" "origin/$branch"
done
 

─░┼čte ayr─▒ca tek sat─▒rl─▒k bir s├╝r├╝m:

 git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ;
 

6







fetch T├╝m uzaktan kumanday─▒ ├žekmek i├žin kullan .

    git fetch --all
 

Uzak dallar─▒ listelemek i├žin:

    git branch -r
 

T├╝m ┼čubelerinizi listelemek i├žin

    git branch -l
   >>outpots like-
     * develop
       test
       master
 

Bir ┼čubeyi sat─▒n almak / de─či┼čtirmek i├žin

    git checkout master
 

3







Bo┼č bir klas├Âr olu┼čturmak i├žin l├╝tfen komutu takip edin. Bunu girin ve bu komutu kullan─▒n:

 saifurs-Mini:YO-iOS saifurrahman$ git clone your_project_url
Cloning into 'iPhoneV1'...
remote: Counting objects: 34230, done.
remote: Compressing objects: 100% (24028/24028), done.
remote: Total 34230 (delta 22212), reused 15340 (delta 9324)
Receiving objects: 100% (34230/34230), 202.53 MiB | 294.00 KiB/s, done.
Resolving deltas: 100% (22212/22212), done.
Checking connectivity... done.
saifurs-Mini:YO-iOS saifurrahman$ cd iPhoneV1/
saifurs-Mini:iPhoneV1 saifurrahman$ git checkout 1_4_0_content_discovery
Branch 1_4_0_content_discovery set up to track remote branch 1_4_0_content_discovery from origin.
Switched to a new branch '1_4_0_content_discovery'
 

1







Uzak dal ad─▒ ├Âzel karakterlerle ba┼čl─▒yorsa, ├Âdeme komutunda etraf─▒ndaki tek t─▒rnak i┼čaretlerini kullanman─▒z gerekir, yoksa git hangi daldan bahsetti─činizi bilmez.

├ľrne─čin, #9773 a┼ča─č─▒daki ┼čekilde g├Âsterildi─či gibi uzak bir dal─▒ kontrol etmeye ├žal─▒┼čt─▒m ancak komut d├╝zg├╝n ┼čekilde ├žal─▒┼čmad─▒:


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

Bir nedenden dolay─▒, keskin sembol├╝n (#) bununla bir ilgisi olup olmad─▒─č─▒n─▒ merak ettim ve sonra dal ad─▒n─▒ sadece tek '#9773' kelimeyle de─čil , tek kelimeyle ├ževrelemeyi denedim #9773 ve gayet iyi ├žal─▒┼čt─▒.

 $ git checkout -b '#9773' origin/'#9773'
 

1







Bizim i├žin remote.origin.fetch yap─▒land─▒rma bir sorun yaratt─▒ gibi g├Âr├╝n├╝yor . Bu nedenle, ba┼čka hi├žbir uzak ┼čubeyi g├Âremedik master , bu y├╝zden git fetch [--all] yard─▒mc─▒ olmad─▒. Ne uzaktan ne git checkout mybranch de git checkout -b mybranch --track origin/mybranch olsa kesinlikle i┼če yaramad─▒.

├ľnceki yap─▒land─▒rma yaln─▒zca master getirilebildi:

 $ git config --list | grep fetch
remote.origin.fetch=+refs/heads/master:refs/remotes/origin/master
 

* K├Âkeni kullanarak yeni bilgileri al─▒p getirerek d├╝zeltin :

 $ git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'

$ git fetch
...
 * [new branch] ...
...
 

┼×imdi git checkout uzak ┼čubeyi yerel olarak yapabiliriz.

Bu konfig├╝rasyonun yerel depoda nas─▒l ger├žekle┼čti─či hakk─▒nda hi├žbir fikrim yok.


0







t├╝m uzak ┼čubeleri kullanmak i├žin ┼čunu kullan─▒n:

 git fetch --all
 

sonra ┼čubeye ├Âdeme yap─▒n:

 git checkout test
 

0