Làm thế nào để tạo một chi nhánh mới từ một thẻ?


528

Tôi muốn tạo một nhánh chính mới từ một thẻ hiện có. Nói rằng tôi có một thẻ v1.0. Làm thế nào để tạo một chi nhánh mới từ thẻ này?


bản sao có thể của thẻ Checkout GIT
Greg Bacon

Câu trả lời:


877

Ồ, điều đó dễ hơn tôi nghĩ:

git checkout -b newbranch v1.0

53
Chính xác. Lưu ý rằng bạn cũng có thể vừa đặt nhánh chính trở lại điểm của thẻ vớigit reset --hard v1.0
wadesworld

3
Nếu điều này không hoạt động vì "<tag> không phải là một cam kết hợp lệ" hoặc một lỗi tương tự (thường là khi làm việc trên một kho lưu trữ được chia sẻ), hãy tham khảo stackoverflow.com/questions/35979642/,
SalmonKiller

6
Đề xuất từ ​​@wadesworld có thể hoạt động, nhưng nếu bất cứ ai đọc điều này và không chắc chắn 100% ý nghĩa của việc đặt lại nhánh chính, đừng làm điều đó .
Nathan Long

Đây là một câu trả lời tốt hơn mà tôi tìm thấy ở đây - stackoverflow.com/a/35979751/3145960
Reaz Murshed

101

Nếu bạn chỉ muốn tạo một nhánh mới mà không cần thay đổi ngay lập tức, bạn có thể làm như sau:

git branch newbranch v1.0

6
Tôi nghĩ rằng đây nên là câu trả lời được chấp nhận vì nó thực hiện chính xác những gì được yêu cầu. Câu trả lời được chấp nhận làm một cái gì đó khác không được nêu trong câu hỏi.
Javier Vazquez

40

Tôi đã sử dụng các bước sau để tạo một nhánh sửa lỗi nóng mới từ Thẻ.

Cú pháp

git checkout -b <New Branch Name> <TAG Name>

Các bước để làm điều đó.

  1. kiểm tra git -b NewBranchName v1.0
  2. Thay đổi phiên bản pom / phát hành
  3. Thay đổi giai đoạn
  4. git commit -m "Cập nhật phiên bản pom cho nhánh Hotfix"
  5. Cuối cùng đẩy chi nhánh mới được tạo của bạn vào kho lưu trữ từ xa.
git push -u origin NewBranchName

Tôi hy vọng điều này sẽ giúp.


17

Tôi đã giải quyết vấn đề như dưới đây 1. Nhận thẻ từ chi nhánh của bạn 2. Viết lệnh bên dưới

Example: git branch <Hotfix branch> <TAG>
    git branch hotfix_4.4.3 v4.4.3
    git checkout hotfix_4.4.3

hoặc bạn có thể làm với lệnh khác

git checkout -b <Hotfix branch> <TAG>
-b stands for creating new branch to local 

Khi bạn đã sẵn sàng với nhánh hotfix của mình, đã đến lúc chuyển nhánh đó sang github, bạn có thể làm như vậy bằng cách viết lệnh bên dưới

git push --set-upstream origin hotfix_4.4.3

5

Tình huống trở nên hơi rắc rối nếu chúng ta muốn tạo một nhánh từ một thẻ có cùng tên .

Trong trường hợp này và trong các kịch bản tương tự, điều quan trọng là phải biết: các nhánh và thẻ thực sự là các tệp văn bản một dòng trong .git/refsthư mục và chúng ta có thể tham chiếu chúng một cách rõ ràng bằng cách sử dụng các đường dẫn bên dưới .git. Chi nhánh được gọi là "đầu" ở đây, để làm cho cuộc sống của chúng ta đơn giản hơn.

Như vậy, refs/heads/masterlà tên thật, rõ ràng của masterchi nhánh. Và refs/tags/cicalà tên chính xác của thẻ được đặt tên cica.

Lệnh đúng để tạo một nhánh có tên cicatừ thẻ có tên cicalà:

git branch cica refs/tags/cica

4

Danh sách chi nhánh của tôi (chỉ có chủ bây giờ)

danh sách chi nhánh

Danh sách thẻ của tôi (có ba thẻ)

danh sách thẻ

Chuyển sang tính năng / codec nhánh mới từ thẻ opus_codec

git checkout -b feature/codec opus_codec

chuyển sang chi nhánh


2
Vui lòng không sử dụng ảnh chụp màn hình nếu cũng sao chép văn bản sẽ là đủ.
peterh - Phục hồi lại
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.