“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
Mı 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.