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_branch
yerel olarak zaten var ve bu dalda değildir, daha sonra git checkout another_branch
şube geçer.
Eğer another_branch
mevcut değil ama var origin/another_branch
ise, o git checkout another_branch
zaman eşdeğerdir git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. Bu oluşturmak için var another_branch
den origin/another_branch
ve seti origin/another_branch
akışyukansı olarak another_branch
.
Hiçbiri yoksa, git checkout another_branch
hata döndürür.
git checkout origin another_branch
çoğu durumda hata döndürür. Eğer origin
bir revizyon olup another_branch
daha 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 pull
ve git push
bir uzaktan kumanda, uzaktan depo URL'nin bir takma ad olarak.
git checkout origin/another_branch
varsa 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 foo
mevcut değildir ve origin/foo
mevcut oluşturmak için denemek foo
gelen origin/foo
ve daha sonra geçiş foo
:
git switch -c foo origin/foo
# or simply
git switch foo
Daha genel olarak, yoksa foo
, foo
bilinen 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 origin
Gitlab ve github
Github için iki uzaktan kumandası olabilir . Bu durumda depoda origin/foo
ve vardır github/foo
. git switch foo
şikayet edecek fatal: invalid reference: foo
, çünkü hangi ref'den origin/foo
ya da github/foo
yaratılacağı bilinmiyor foo
. İhtiyaca göre git switch -c foo origin/foo
veya git switch -c foo github/foo
ihtiyaca 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 branch
bunun yerine kullanın. Bilinen bir ref veya taahhütten bir şube oluşturmaya çalışın:
git branch foo <ref>
git branch foo <commit>
git checkout
komut bence çok fazla şey yapıyor. Bu yüzden burada çok fazla çalışma modu var. Tek şey olursa git checkout
yaptığım anahtar Cevap basit olurdu, ama aynı zamanda olabilir, dalları oluşturmak dalları ve hatta belirli kaydedilmesini dosyaları ayıklamak olmadan dalları anahtarlama.
git switch
bir ş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 --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
param kullanarak ) yaptığınızda yapmak için yararlı olabilir ve şimdi error: pathspec 'another_branch' did not match any file(s) known to git
yukarı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