Sự khác biệt giữa chi nhánh git của người khác và người kiểm tra git của người khác là gì?


Câu trả lời:


258

git checkout -b BRANCH_NAMEtạo một nhánh mới và kiểm tra nhánh mới trong khi git branch BRANCH_NAMEtạo một nhánh mới nhưng để bạn trên cùng một nhánh.

Nói cách khác, những git checkout -b BRANCH_NAMEđiều sau đây cho bạn.

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

44

git branch tạo chi nhánh nhưng bạn vẫn ở chi nhánh hiện tại mà bạn đã kiểm tra.

git checkout -b tạo một nhánh và kiểm tra nó

Nó có thể được coi là một hình thức ngắn của:

git branch name
git checkout name

Chúng ta hãy nói: "nhánh git tạo ra nhánh nhưng bạn vẫn ở nhánh hiện tại TỪ MÀ bạn đã kiểm tra."
Akash Verma

28
  • git branch: Hiển thị tất cả các chi nhánh của bạn
  • git branch newbranch: Tạo một chi nhánh mới
  • git checkout -b newbranch: Tạo một nhánh mới và chuyển sang nhánh đó ngay lập tức. Điều này giống như git branch newbranchtiếp theo git checkout newbranch.

23

Cú pháp đầy đủ:

git checkout -b [NEW_BRANCH] [FROM_BRANCH]

[TỪ_BRANCH] là tùy chọn. Nếu không có FROM_BRANCH, git sẽ sử dụng nhánh hiện tại.


7

Ngoài ra còn có một lá cờ khác để đề cập, liên quan đến những điều này ..

git checkout -B BRANCH_NAME

Đây là một lệnh rất hữu ích mà tôi đã sử dụng gần đây. Lệnh này kiểm tra nhánh bạn chỉ định và đặt lại nhánh dựa trên nhánh nguồn.


2
Bạn có thể giải thích thêm? Tôi không biết thiết lập lại có nghĩa gì cho git
Mikaël Mayer

3
Từ hướng dẫn trên git: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

Vì vậy, bạn có nghĩa là bạn có thể tái sử dụng một chi nhánh hiện có?
Mikaël Mayer

1
checkout -Bnguy hiểm không nếu chi nhánh bạn chuyển sang được chia sẻ bởi những người khác? Tôi đã sử dụng điều này gần đây và nó dường như tự động hợp nhất trong các thay đổi trong chi nhánh khác của tôi với chi nhánh tôi chuyển sang.
Jeff

nếu bạn tìm nạp một nhánh nhà phát triển khác từ xa và thực hiện git checkout -Bthì có, nó sẽ hợp nhất hoặc thậm chí có thể thay thế
ddavison

-1

Có các hình thức của cả hai lệnh tương tự nhau (nhìn vào tài liệu git-scm Phiên bản 2.11.1):

git branch <branchname> <start-point>

git checkout -b <new_branch> <start_point>

Cái sau thực thi lệnh nhánh trước rồi thêm thanh toán. Trong mẫu đó tham chiếu rõ ràng đến tài liệu của git-Branch:

Chỉ định -b làm cho một nhánh mới được tạo như thể git-nhánh [2] được gọi và sau đó kiểm tra


1
Điều này không thêm bất kỳ thông tin mới nào vào câu trả lời được chấp nhận từ năm 2011
melpomene

Nó thực sự có thêm thông tin mới về <điểm bắt đầu>. Mà cá nhân tôi thấy khá hữu ích để tạo các nhánh trên đối tượng nằm ở nơi khác mà không phải kiểm tra đối tượng trước hoặc di chuyển nhánh hiện tại. Sử dụng các ký hiệu là [FROM_BRANCH] khi thực sự tham chiếu git có nghĩa là không hữu ích theo quan điểm của tôi.
Pshemy108

Đối số thứ hai tùy chọn không liên quan đến câu hỏi. Nó giống nhau giữa cả hai lệnh và OP đã yêu cầu sự khác biệt. (Nếu bạn thực sự nghĩ rằng nó cần thiết, tôi sẽ chỉ cần thêm một nhận xét vào câu trả lời được chấp nhận.)
melpomene

-1

Bản chất :

Nhánh A-git cho phép bạn tạo một nhánh đơn giản và đơn giản.

B -git checkout -b cho phép bạn tạo một nhánh và chuyển sang nó cùng một lúc.

Khi nào bạn sẽ sử dụng cái nào? 1- nhánh git khi bạn muốn tạo một nhánh nhưng vẫn ở nhánh hiện tại. 2- git checkout -b khi bạn muốn tạo và chuyển đổi. Nếu bạn nhìn vào nó là trực quan để tạo một nhánh và chuyển sang nó. Cho nên lựa chọn là của bạn :)


4
Điều này không thêm bất kỳ thông tin mới nào vào câu trả lời được chấp nhận từ năm 2011
melpomene
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.