วิธีสร้างสาขาใหม่จากแท็ก


528

ฉันต้องการสร้างสาขาหลักใหม่จากแท็กที่มีอยู่ v1.0บอกว่าผมมีแท็ก วิธีสร้างสาขาใหม่จากแท็กนี้


ซ้ำเป็นไปได้ของแท็กร้า GIT
เกร็กเบคอน

คำตอบ:


877

ว้าวนั้นง่ายกว่าที่ฉันคิดไว้:

git checkout -b newbranch v1.0

53
แก้ไข. โปรดทราบว่าคุณอาจตั้งสาขาหลักกลับไปที่จุดของแท็กด้วยgit reset --hard v1.0
wadesworld

3
หากสิ่งนี้ไม่ทำงานเพราะ "<tag> ไม่ใช่การกระทำที่ถูกต้อง" หรือข้อผิดพลาดที่คล้ายกัน (บ่อยครั้งเมื่อทำงานในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน) อ้างถึงstackoverflow.com/questions/35979642/ …
SalmonKiller

6
ข้อเสนอแนะจาก @wadesworld สามารถทำงานได้ แต่ถ้าใครอ่านนี้และไม่แน่ใจ 100% ว่ามันหมายถึงรีเซ็ตสาขาต้นแบบไม่ทำอย่างนั้น
นาธานลอง

นี่เป็นคำตอบที่ดีกว่าที่ฉันพบที่นี่ - stackoverflow.com/a/35979751/3145960
Reaz Murshed

101

หากคุณต้องการสร้างสาขาใหม่โดยไม่ต้องเปลี่ยนสาขาทันทีคุณสามารถทำสิ่งต่อไปนี้:

git branch newbranch v1.0

6
ฉันคิดว่านี่ควรเป็นคำตอบที่ได้รับการยอมรับเพราะทำในสิ่งที่จำเป็น คำตอบที่ยอมรับจะทำอย่างอื่นที่ไม่ได้ระบุไว้ในคำถาม
Javier Vazquez

40

ฉันใช้ขั้นตอนต่อไปนี้เพื่อสร้างสาขาฮอตฟิกซ์ใหม่จากแท็ก

วากยสัมพันธ์

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

ขั้นตอนในการทำ

  1. git checkout -b NewBranchName v1.0
  2. ทำการเปลี่ยนแปลงรุ่น pom / release
  3. การเปลี่ยนแปลงขั้นตอน
  4. git commit -m "อัพเดตเวอร์ชั่น pom สำหรับสาขา Hotfix"
  5. ในที่สุดก็ผลักสาขาที่คุณสร้างขึ้นใหม่ไปยังที่เก็บระยะไกล
git push -u origin NewBranchName

ฉันหวังว่านี่จะช่วยได้


17

ฉันแก้ไขปัญหาดังต่อไปนี้ 1. รับแท็กจากสาขาของคุณ 2. เขียนคำสั่งด้านล่าง

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

หรือคุณสามารถทำได้ด้วยคำสั่งอื่น ๆ

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

เมื่อคุณพร้อมกับสาขาของโปรแกรมแก้ไขด่วนถึงเวลาที่จะย้ายสาขานั้นไปยัง Github คุณสามารถทำได้โดยการเขียนคำสั่งด้านล่าง

git push --set-upstream origin hotfix_4.4.3

5

สถานการณ์จะกลายเป็นปัญหานิด ๆ หน่อย ๆ ถ้าเราต้องการที่จะสร้างสาขาจากแท็กที่มีชื่อเดียวกัน

ในนี้และในสถานการณ์ที่คล้ายกันสิ่งที่สำคัญคือต้องรู้: สาขาและแท็กเป็นจริงไฟล์ข้อความบรรทัดเดียวใน.git/refsไดเรกทอรีและเราสามารถอ้างอิงพวกเขาอย่างชัดเจนโดยใช้ pathes .gitด้านล่าง กิ่งไม้ถูกเรียกที่นี่ว่า "หัว" เพื่อให้ชีวิตของเราง่ายขึ้น

ดังนั้นจึงrefs/heads/masterเป็นชื่อจริงที่ชัดเจนของmasterสาขา และrefs/tags/cicaเป็นชื่อที่แน่นอนของแท็กชื่อcicaเป็นชื่อที่แน่นอนของแท็กชื่อ

คำสั่งที่ถูกต้องในการสร้างสาขาชื่อcicaจากแท็กชื่อcicaคือ:

git branch cica refs/tags/cica

4

รายการสาขาของฉัน (เฉพาะอาจารย์เท่านั้น)

รายการสาขา

รายการแท็กของฉัน (มีสามแท็ก)

รายการแท็ก

เปลี่ยนเป็นคุณลักษณะ / ตัวแปลงสัญญาณสาขาใหม่จากแท็กopus_codec

git checkout -b feature/codec opus_codec

เปลี่ยนเป็นสาขา


2
โปรดอย่าใช้ภาพหน้าจอหากการคัดลอกข้อความก็เพียงพอแล้ว
peterh - Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.