ควรจะติดแท็กสาขาที่วางจำหน่ายหรือสาขาหลักเมื่อใช้ gitflow หรือไม่


16

ปัญหานี้ระบุว่า:

จากความเข้าใจของฉันที่วางแท็กในสาขาที่วางจำหน่ายก่อนที่จะรวม (และไม่ได้อยู่ในสาขาหลัก) ในความเป็นจริงสิ่งที่ถูกต้องที่จะทำมันสามารถพบได้โดย git อธิบาย - แท็กจากสาขาพัฒนาเช่นกัน ดู # 374

ในขณะที่โพสต์อื่น :

ฉันบังเอิญติดตั้งเวอร์ชั่น 0.4.2 ล่วงหน้าผ่าน homebrew วันนี้และรู้สึกสับสนกับวิธีการติดแท็กที่ใช้งานในเวอร์ชันนั้น ก่อนหน้านี้ (เวอร์ชั่น 0.4.1) แท็กถูกสร้างขึ้นในสาขาหลักหลังจากสาขาย่อยได้รับการรวมเข้าด้วยกัน ตอนนี้ดูเหมือนว่าแท็กจะถูกสร้างขึ้นในการกระทำครั้งสุดท้ายของสาขาที่วางจำหน่ายซึ่งดูเหมือนจะไม่ใช่ความคิดที่ดีสำหรับฉัน โดยเฉพาะอย่างยิ่งถ้าคุณมีระบบการสร้างที่อาศัยแท็ก git และสร้างรุ่นที่วางจำหน่ายหาก HEAD เป็นคอมมิทที่ติดแท็กและเวอร์ชันการพัฒนาหากหนึ่งในคอมมิชชันต่อไปนี้ ใครช่วยอธิบายตรรกะที่อยู่เบื้องหลังการเปลี่ยนแปลงนี้ให้ฉันได้ไหม และด้วยความเคารพต่อ semantic versioning ฉันไม่คิดว่ามันจะเป็นเวอร์ชั่นที่ชนกันในระดับ patch!

ในทีมของเราเรามีและมีการพูดคุยกันหลายครั้งเกี่ยวกับเรื่องนี้ บางคนระบุว่าจะต้องสร้างแท็กจากสาขาหลักในขณะที่บางสาขาต้องการสาขาย่อย ตามภาพ gitflow:

ป้อนคำอธิบายรูปภาพที่นี่

ดูเหมือนว่าแท็กจะถูกวางไว้บนต้นแบบ


1
ฉันรู้ว่า GitLab ต่อสู้กับแท็กที่กิ่งเมื่อคุณตัดกิ่งที่เก่ากว่าออกไปดังนั้นมันจะดีกว่าถ้าแท็กอยู่บนกิ่ง ไม่แน่ใจเกี่ยวกับเครื่องมือคอมไพล์อื่น ๆ
HorusKol

'The gitflow' แสดงถึงว่าเวิร์กโฟลว์นี้ (IMO แย่) เป็นเวิร์กโฟลว์มาตรฐานหรือคอมไพล์อย่างเป็นทางการ มันไม่ใช่
Miles Rout

@MilesRout เวิร์กโฟลว์ git ที่คุณชื่นชอบคืออะไร?
030

สำหรับกรณีของฉันฉันใช้ค่าของแท็ก git เพื่อตั้งชื่อเวอร์ชันของแอพเมื่อวางจำหน่ายดังนั้นฉันจึงกำหนดให้อยู่ในสาขาที่วางจำหน่าย
คิดรหัสสองครั้งเมื่อ

คำตอบ:


16

ประการแรกคุณไม่สามารถติดแท็กสาขาได้คุณสามารถติดแท็กได้เท่านั้น

คุณควรติดแท็กการคอมมิทที่คุณปล่อยจริง นั่นคือประเด็นของการติดแท็กเวอร์ชัน หากคุณมีปัญหากับซอฟต์แวร์ของคุณในบางสภาพแวดล้อม (การผลิตหรืออย่างอื่น) คุณสามารถพูดได้อย่างมั่นใจว่าปัญหานี้ได้รับการแนะนำโดยการยอมรับว่าการปล่อยนั้นได้มาจาก

(นี่คือเหตุผลที่ผู้คนพูดถึง 'build ที่ทำซ้ำได้': ดังนั้นพวกเขาจึงมั่นใจได้ว่าขั้นตอนการเปิดตัวของพวกเขาไม่ได้แนะนำข้อผิดพลาดใหม่ที่ไม่ได้แสดงในสภาพแวดล้อมตัวอย่าง / การแสดงละครและถ้าพวกเขามีข้อผิดพลาดในการผลิตเดียวกัน ไบนารีกำลังทำงานบนเครื่องของพวกเขาเมื่อพวกเขาไปแก้จุดบกพร่อง)

ไม่มีจุดติดแท็กคอมมิทสีเขียวที่สองจากด้านล่าง (ลูกสีเขียวของคอมมิทที่ทำเครื่องหมาย 'เฉพาะบั๊ก'! ') เป็น' v1.0 'เพราะคุณไม่ได้ปล่อยคอมมิชชันนั้นให้กับการผลิต คุณปล่อยคอมมิทให้กับมาสเตอร์ คุณสามารถเห็นได้ว่าการไหลของคอมไพล์มีการทำเครื่องหมายเป็น 'แท็ก 1.0'

จำไว้ว่าแท็กมีจุดประสงค์เพื่อค้นหาการกระทำที่ง่าย คุณแท็กคอมมิทเป็น 'v1.0' เพื่อให้คุณสามารถค้นหาสิ่งที่คุณเปิดตัวเป็นเวอร์ชัน 1.0 ได้อย่างง่ายดาย คุณไม่ต้องติดแท็กเพื่อเห็นว่ามีแท็ก 'v1.0' อยู่ที่ไหนสักแห่งในทรีคอมมิชชันของคุณใกล้กับการคอมมิทที่คุณปล่อยออกมาจริงๆ

หากคุณมีปัญหาในการค้นหาแท็กจากสาขาการพัฒนาของคุณนั่นเป็นปัญหาที่แยกจากกันโดยสิ้นเชิง แก้ไขเครื่องมือที่คุณใช้เพื่อค้นหาแท็ก หรือดีกว่า: อย่าใช้ git-flow มันดูดีในแผนภาพนั้นเพราะจุดสีที่น่ารักและเส้นที่วางไว้อย่างดี แต่ในความเป็นจริงมันดูเหมือนเว็บยุ่ง ๆ ของเส้นและจุดสีที่ยุ่งเหยิง


3
You should tag the commit you actually release. ดังนั้นหากตัวอย่าง 20 การคอมมิทที่จำเป็นต้องถูกปล่อยอยู่ในรีลีสสาขาและสาขานี้ถูกรวมเข้ากับมาสเตอร์การคอมมิทการคอมมิชชันที่ถูกสร้างขึ้นจะต้องติดแท็กเพื่อที่จะได้รู้ว่า
030

1
ใช่การรวมการกระทำจะถูกแท็ก ในฐานะที่เป็นตัวแปรของ git-flow ฉันได้เห็นการสร้าง / ติดแท็ก "เวอร์ชั่น bump กระทำ" แยกต่างหากโดยตรงบนbranch:master
rmharrison
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.