“Git branch” ve “git checkout -b” arasındaki fark nedir?


Yanıtlar:


259

git checkout -b BRANCH_NAME yeni bir şube oluşturur ve yeni şube git branch BRANCH_NAME oluşturur ancak sizi aynı dalda bırakır.

Başka bir deyişle git checkout -b BRANCH_NAME, aşağıdakileri sizin için yapar.

git branch BRANCH_NAME    # create a new branch
git checkout BRANCH_NAME  # then switch to the new branch

44

git branch dal oluşturur, ancak teslim aldığınız dalda kalırsınız.

git checkout -b bir şube oluşturur ve denetler.

Kısa bir form olarak düşünülebilir:

git branch name
git checkout name

Diyelim ki: "git şubesi dal yaratıyor, ancak baktığınız HEDİYEDEN geçerli dalda kalıyorsunuz."
Akash Verma

28
  • git branch: Tüm şubelerinizi gösterir
  • git branch newbranch: Yeni bir şube oluşturur
  • git checkout -b newbranch: Yeni bir dal oluşturur ve hemen bu dala geçer. Bu, git branch newbranchtakip edenle aynıdır git checkout newbranch.

24

Tam sözdizimi:

git checkout -b [NEW_BRANCH] [FROM_BRANCH]

[FROM_BRANCH] isteğe bağlıdır. FROM_BRANCH yoksa, git geçerli dalı kullanır.


7

Bunlardan başka bir bayrak daha var.

git checkout -B BRANCH_NAME

Bu son zamanlarda kullandığım çok kullanışlı bir komut. Bu komut belirttiğiniz dalı denetler ve kaynak dalı temel alarak dalı sıfırlar .


2
Biraz daha fazla açıklayabilir misin? Git için sıfırlamanın ne anlama geldiğini bilmiyorum
Mikaël Mayer

3
Git kılavuzundaki:If -B is given, <new_branch> is created if it doesn't exist; otherwise, it is reset. This is the transactional equivalent of $ git branch -f <branch> [<start point>] $ git checkout <branch>
ddavison

Yani mevcut bir şubeyi tekrar kullanabileceğinizi mi söylüyorsunuz?
Mikaël Mayer

1
checkout -Bsen geçiyorsanız şube başkaları tarafından paylaşılıyorsa tehlikeli? Bunu son zamanlarda kullandım ve diğer dalımdaki değişiklikleri otomatik olarak değiştirdiğim dalda birleştiriyor gibiydi.
Jeff

başka bir geliştirici dalını uzaktan alıyorsanız ve bir git checkout -Bevet yaparsanız , birleşir, hatta değiştirilir
ddavison

-1

Her iki komutun da benzer formları vardır (git-scm docs Sürüm 2.11.1'e bakın):

git branch <branchname> <start-point>

ve

git checkout -b <new_branch> <start_point>

İkincisi ilk şube komutu yürütmeden ve daha sonra kasada ekledi. Bu formda açıkça git-branch'un dokümanı referansları:

-B belirtilmesi, git-branch [2] çağrılmış ve sonra kullanıma alınmış gibi yeni bir dalın oluşturulmasına neden olur


1
Bu, 2011'in kabul edilen cevabı hakkında yeni bir bilgi
eklemiyor

Aslında <start-point> hakkında yeni bilgiler ekler. Ben şahsen önce nesneyi kontrol etmek veya geçerli dalı taşımak zorunda kalmadan başka bir yerde bulunan nesne üzerinde dallar oluşturmak için oldukça yararlı buldum. Aslında git-referans kastedildiğinde gösterimleri [FROM_BRANCH] olarak kullanmak bence yararlı değildir.
Pshemy108

İsteğe bağlı ikinci argüman soru ile ilgili değildir. Her iki komut arasında da aynı durum var ve OP farkı istiyordu. (Gerçekten gerekli olduğunu düşünüyorsanız, kabul edilen yanıta bir yorum
eklerdim

-1

Esasen:

A-git dalı, basit ve basit bir dal oluşturmanıza olanak tanır.

B -git checkout -b, bir şube oluşturmanıza ve aynı zamanda ona geçmenize olanak tanır.

Hangisini ne zaman kullanacaksın? 1- git şubesi oluşturmak istediğinizde, ancak geçerli dalda kalın. 2- git checkout -b oluşturmak ve geçiş yapmak istediğinizde. Eğer bakarsanız bir dal oluşturmak ve ona geçmek sezgiseldir. Yani, seçim senin :)


4
Bu, 2011'in kabul edilen cevabı hakkında yeni bir bilgi
eklemiyor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.