Bu çizgilerden hangisi doğrudur?
git checkout 'another_branch'
Veya
git checkout origin 'another_branch'
Veya
git checkout origin/'another_branch'
git checkout 'another_branch'
Veya
git checkout origin 'another_branch'
Veya
git checkout origin/'another_branch'
Yanıtlar:
Eğer another_branchyerel olarak zaten var ve bu dalda değildir, daha sonra git checkout another_branchşube geçer.
Eğer another_branchmevcut değil ama var origin/another_branchise, o git checkout another_branchzaman eşdeğerdir git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch. Bu oluşturmak için var another_branchden origin/another_branchve seti origin/another_branchakışyukansı olarak another_branch.
Hiçbiri yoksa, git checkout another_branchhata döndürür.
git checkout origin another_branchçoğu durumda hata döndürür. Eğer originbir revizyon olup another_branchdaha sonra bu revizyonu dosyanın dışında kontroller ancak büyük olasılıkla en beklemediğiniz Ne yani bir dosyadır. originÇoğunlukla kullanılan git fetch, git pullve git pushbir uzaktan kumanda, uzaktan depo URL'nin bir takma ad olarak.
git checkout origin/another_branchvarsa başarılı olur origin/another_branch. Herhangi bir dalda değil, ayrı HEAD durumunda olmasına yol açar. Yeni taahhütlerde bulunursanız, yeni taahhütlere mevcut şubelerden ulaşılamaz ve şubelerin hiçbiri güncellenmez.
GÜNCELLEME :
2.23.0 yayımlandığı gibi, onunla git switchşube oluşturmak ve değiştirmek için de kullanabiliriz .
Varsa foo, şunlara geçmeyi deneyin foo:
git switch foo
Eğer foomevcut değildir ve origin/foomevcut oluşturmak için denemek foogelen origin/foove daha sonra geçiş foo:
git switch -c foo origin/foo
# or simply
git switch foo
Daha genel olarak, yoksa foo, foobilinen bir ref veya taahhütten oluşturmaya çalışın ve ardından şuraya geçin foo:
git switch -c foo <ref>
git switch -c foo <commit>
Gitlab ve Github'da aynı anda bir depomuz varsa, yerel deponun örneğin originGitlab ve githubGithub için iki uzaktan kumandası olabilir . Bu durumda depoda origin/foove vardır github/foo. git switch fooşikayet edecek fatal: invalid reference: foo, çünkü hangi ref'den origin/fooya da github/fooyaratılacağı bilinmiyor foo. İhtiyaca göre git switch -c foo origin/fooveya git switch -c foo github/fooihtiyaca göre belirtmemiz gerekiyor. Her iki uzak daldan da dallar oluşturmak istiyorsak, yeni dallar için ayırt edici adlar kullanmak daha iyidir:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
Varsa foo, bilinen bir başvuru veya taahhütten yeniden oluşturmayı / zorla oluşturmayı foo(veya sıfırlamayı foo) deneyin ve ardından şuraya geçin foo:
git switch -C foo <ref>
git switch -C foo <commit>
eşdeğer olanlar:
git switch foo
git reset [<ref>|<commit>] --hard
Bilinen bir ref veya taahhütten bağımsız bir HEAD'e geçmeye çalışın:
git switch -d <ref>
git switch -d <commit>
Sadece bir şube oluşturmak istiyorsanız, ancak bir şubeye geçmek istemiyorsanız git branchbunun yerine kullanın. Bilinen bir ref veya taahhütten bir şube oluşturmaya çalışın:
git branch foo <ref>
git branch foo <commit>
git checkoutkomut bence çok fazla şey yapıyor. Bu yüzden burada çok fazla çalışma modu var. Tek şey olursa git checkoutyaptığım anahtar Cevap basit olurdu, ama aynı zamanda olabilir, dalları oluşturmak dalları ve hatta belirli kaydedilmesini dosyaları ayıklamak olmadan dalları anahtarlama.
git switchbir şubeye geçmek için kullanabilirsiniz .
git checkout, modern sürümlerde de çalışan eski sürümler için kullanın .
Git'te başka bir şubeye geçiliyor. Kolay cevap,
git-checkout - Dalları değiştir veya çalışan ağaç dosyalarını geri yükle
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
Şubeyi değiştirmeden önce değiştirilmiş dosyalara sahip olmadığınızdan emin olun, bu durumda değişiklikleri kabul edebilir veya saklayabilirsiniz.
[ git checkout "branch_name"]
söylemenin başka bir yolu:
[ git checkout -b branch_name origin/branch_name]
"şube_adı" nın yalnızca uzaktan bulunması durumunda .
[ git checkout -b branch_name origin/branch_name], birden çok uzaktan kumandanız olması durumunda kullanışlıdır.
[ git checkout origin 'another_branch'] Bunun mümkün olduğundan emin değilim, AFAK bunu "getir" komutunu kullanarak yapabilirsiniz - [ git fetch origin 'another_branch']
Benim için işe yarayan şudur:
Gerekli şubeye geçin:
git checkout -b BranchName
Sonra "efendi" yi çektim:
git pull origin master
Günlük hayatta çalışmak için yararlı komutlar:
git checkout -b "branchname" -> creates new branch
git branch -> lists all branches
git checkout "branchname" -> switches to your branch
git push origin "branchname" -> Pushes to your branch
git add */filename -> Stages *(All files) or by given file name
git commit -m "commit message" -> Commits staged files
git push -> Pushes to your current branch
Şubenin uzak dalı izlemesini istiyorsanız, şubede değişiklik yapacaksanız ve değişiklikleri vb. Çekecekseniz çok içe aktarılıyorsa, gerçek ödeme için a -t eklemeniz gerekir.
git checkout -t branchname
Kontrol : git branch -a
Sadece bir şube alıyorsanız. Ardından aşağıdaki adımları uygulayın.
git config --listgit config --unset remote.origin.fetch git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*depthparam kullanarak ) yaptığınızda yapmak için yararlı olabilir ve şimdi error: pathspec 'another_branch' did not match any file(s) known to gityukarıda önerilen komutları kullanarak başka bir uzak dalı neden alamadığınızı merak ediyorsunuz . Kesinlikle asıl sorunun ne olduğu bu değildi ama başkalarının kafalarını çizmelerine yardımcı olabilir.
Bunu bir şubeyi başka bir kişiye geçirmek için kullanıyorum, çekicilik gibi benim için çalışıyor.
git switch [branchName] VEYA git checkout [branchName]
örnek: git switch geliştirme VEYA
git checkout geliştirme
git checkout [branch]bu soruya gelen çoğu kullanıcı için