คอมไพล์เพิ่ม เทียบกับคอมมิทคอมมิต -a


คำตอบ:


139

git commit -aหมายถึงเกือบ [*] git add -u && git commitสิ่งเดียวกับ

ไม่เหมือนกับgit add .การเพิ่มไฟล์ที่ไม่ได้ติดตามซึ่งจะไม่ถูกละเลยgit add -uมีเพียงขั้นตอนเท่านั้นที่เปลี่ยนแปลง (รวมถึงการลบ) ไปยังไฟล์ที่ติดตามแล้ว

[*] มีความแตกต่างเล็กน้อยหากคุณไม่ได้อยู่ที่ไดเรกทอรีรากของที่เก็บของคุณ git add -uการปรับปรุงขั้นตอนไปยังไฟล์ในไดเรกทอรีปัจจุบันและด้านล่างก็เทียบเท่ากับgit add -u .ในขณะที่git commit -aขั้นตอนและกระทำการเปลี่ยนแปลงทุกไฟล์ติดตาม


3
พฤติกรรมใน [*] จะเปลี่ยนไปใน git 2.0 เพื่อความสม่ำเสมอ
user1284631

2
ไปในทิศทางไหน? เช่นจะกระทำ -a กลายเป็นเหมือน add -u หรือจะเพิ่ม -u เป็นเหมือนการกระทำ -a?
เส้นทางไมล์

5
@MilesRout: git add -uจะกลายเป็นเหมือนgit commit -a; คุณจะต้องพูดอย่างชัดเจนว่าgit add -u .นั่นคือสิ่งที่คุณหมายถึงหรือไม่
CB Bailey

สิ่งนี้เหมือนกันอย่างแน่นอนตั้งแต่ Git v 2.0 ซึ่งgit add .ทำงานในลักษณะที่แตกต่างกัน
Nick Volynkin

13

git commit -aเรียกใช้git addไฟล์ทั้งหมดที่รู้จักโดยอัตโนมัติ คุณสามารถใช้git addเพื่อเลือกไฟล์ที่จะคอมมิต ศึกษาเอกสารสำหรับข้อมูลเพิ่มเติมที่นี่


11
ไฟล์ทั้งหมดที่รู้เกี่ยวกับฉันไม่ชัดเจนมากโดยเฉพาะอย่างยิ่งเนื่องจากไม่ได้เพิ่ม
ไฟล์

1
@alternative คำตอบนี้จะทำได้ดีกว่าถ้าคุณเพิ่มคำชี้แจงสำหรับ "ไฟล์ทั้งหมดที่รู้เกี่ยวกับ" .....
Pacerier

2
@Pacerier เทียบเท่ากับgit add -u
ทางเลือก

2
@ Z.Khullah ดังนั้น "all (... )" จึงหมายถึง "ไฟล์ที่ติดตาม"?
TheFrost

1
@TheFrost เป๊ะ!
Z. Khullah

1

โดยใช้ git คอมมิตสวิตช์ -a พร้อมคำสั่งคอมมิตเพื่อ "เพิ่ม" การเปลี่ยนแปลงจากไฟล์ที่รู้จักทั้งหมดโดยอัตโนมัติ (เช่นไฟล์ทั้งหมดที่มีอยู่แล้วในดัชนี)

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