ฉันจะจัดลำดับและยอมรับไฟล์ทั้งหมดรวมถึงไฟล์ที่เพิ่มใหม่โดยใช้คำสั่งเดียวได้อย่างไร
ฉันจะจัดลำดับและยอมรับไฟล์ทั้งหมดรวมถึงไฟล์ที่เพิ่มใหม่โดยใช้คำสั่งเดียวได้อย่างไร
คำตอบ:
ทำ
git add -A && git commit -m "Your Message"
นับเป็น "คำสั่งเดียว" หรือไม่
แก้ไขตามคำตอบของ @ thefinnomenon ด้านล่าง :
ที่จะมีมันเป็นgit aliasใช้:
git config --global alias.coa '!git add -A && git commit -m'
และคอมมิตไฟล์ทั้งหมดรวมถึงไฟล์ใหม่ด้วยข้อความด้วย:
git coa "A bunch of horrible changes"
คำอธิบาย (จากgit addเอกสารประกอบ ):
-A, - ทั้งหมด, - ไม่สนใจ - ลบ
อัปเดตดัชนีไม่เพียง แต่ที่แผนผังการทำงานมีไฟล์ที่ตรงกัน แต่ยังรวมถึงที่ที่ดัชนีมีรายการอยู่แล้ว สิ่งนี้จะเพิ่มปรับเปลี่ยนและลบรายการดัชนีให้ตรงกับแผนผังการทำงาน
หากไม่
<pathspec>ได้รับเมื่อใช้ตัวเลือก -A ไฟล์ทั้งหมดในแผนผังการทำงานทั้งหมดจะได้รับการอัปเดต (Git เวอร์ชันเก่าที่ใช้เพื่อ จำกัด การอัปเดตไปยังไดเรกทอรีปัจจุบันและไดเรกทอรีย่อย)
git add -A ; git commit -m "Your Message"
คำสั่งนี้จะเพิ่มและกระทำทุกไฟล์ที่แก้ไขแต่ไม่ได้สร้างขึ้นใหม่ไฟล์
git commit -am "<commit message>"
จากมนุษย์คอมไพล์:
-a, --all
Tell the command to automatically stage files that have been modified
and deleted, but new files you have not told Git about are not
affected.
ฉันใช้ฟังก์ชั่นนี้:
gcaa() { git add --all && git commit -m "$*" }
ในไฟล์ zsh config ของฉันดังนั้นฉันสามารถทำได้:
> gcaa This is the commit message
หากต้องการจัดลำดับและยอมรับไฟล์ทั้งหมดโดยอัตโนมัติ
function gcaa() { git add --all && git commit -m "$*" && git push }
gaa && gc -m "my commit"นี้ แต่มันก็ดีกว่า ... <รีบออกไปเปลี่ยน bashrc .. >
หนึ่งซับเวทีไฟล์ทั้งหมด ( การแก้ไข , ลบและใหม่ ) และการกระทำที่มีความคิดเห็น:
git add --all && git commit -m "comment"
http://git-scm.com/docs/git-add
http://git-scm.com/docs/git-commit
ไม่แน่ใจว่าทำไมคำตอบเหล่านี้เต้นรอบสิ่งที่ฉันเชื่อว่าเป็นทางออกที่ถูกต้อง แต่สำหรับสิ่งที่คุ้มค่าที่นี่คือสิ่งที่ฉันใช้:
git config --global alias.coa '!git add -A && git commit -m'
git coa "A bunch of horrible changes"
หมายเหตุ: coaย่อมาจากการกระทำทั้งหมดและสามารถถูกแทนที่ด้วยสิ่งที่หัวใจของคุณต้องการ
git aliasหนทางที่เหลือนั้นน่าเบื่อ
การคอมไพล์ด้วยคอมไพล์อาจเป็นกระบวนการหลายขั้นตอนหรือขั้นตอนเดียวขึ้นอยู่กับสถานการณ์
สถานการณ์นี้เป็นที่ที่คุณอัปเดตหลายไฟล์และต้องการคอมมิท:
คุณต้องเพิ่มไฟล์ที่แก้ไขทั้งหมดก่อนที่จะส่งมอบสิ่งใด ๆ
git add -A
หรือ
git add --all
หลังจากนั้นคุณสามารถใช้ส่งไฟล์ที่เพิ่มเข้าไปได้ทั้งหมด
git commit
ด้วยสิ่งนี้คุณต้องเพิ่มข้อความสำหรับการกระทำนี้
หากคุณต้องการวิธีที่ "รวดเร็วและสกปรก" ในการซ่อนการเปลี่ยนแปลงในสาขาปัจจุบันคุณสามารถใช้นามแฝงต่อไปนี้:
git config --global alias.temp '!git add -A && git commit -m "Temp"'
หลังจากรันคำสั่งนั้นคุณสามารถพิมพ์git tempเพื่อให้คอมไพล์ยอมรับการเปลี่ยนแปลงทั้งหมดของคุณไปยังสาขาปัจจุบันโดยอัตโนมัติเป็นคอมมิทที่มีชื่อว่า "Temp" จากนั้นคุณสามารถใช้ในgit reset HEAD~ภายหลังเพื่อ "ยกเลิกการยอมรับ" การเปลี่ยนแปลงเพื่อให้คุณสามารถทำงานต่อได้หรือgit commit --amendเพื่อเพิ่มการเปลี่ยนแปลงเพิ่มเติมในการกระทำและ / หรือให้ชื่อที่เหมาะสม
ฉันมีนามแฝงสองตัวใน config ของฉัน:
alias.foo=commit -a -m 'none'
alias.coa=commit -a -m
ถ้าฉันขี้เกียจเกินไปฉันก็แค่ยอมรับการเปลี่ยนแปลงทั้งหมดด้วย
git foo
และเพียงแค่ทำอย่างรวดเร็ว
git coa "my changes are..."
coa ย่อมาจาก "กระทำทั้งหมด"
เรียกใช้คำสั่งที่กำหนด
git add . && git commit -m "Changes Committed"
อย่างไรก็ตามแม้ว่ามันจะดูเหมือนว่าคำสั่งเดียวมันเป็นสองคำสั่งที่แยกจากกันทำงานหนึ่งโดยหนึ่ง ที่นี่เราเพิ่ง&&รวมเข้าด้วยกัน ไม่แตกต่างจากการวิ่ง
git add .และgit commit -m "Changes Committed"แยกกันมาก คุณสามารถเรียกใช้หลายคำสั่งพร้อมกัน แต่ลำดับมีความสำคัญที่นี่ ถ้าคุณต้องการที่จะผลักดันการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ระยะไกลพร้อมกับการแสดงละครและการกระทำคุณสามารถทำได้ตามที่กำหนด
git add . && git commit -m "Changes Committed" && git push origin master
แต่ถ้าคุณเปลี่ยนลำดับและนำpushไปเป็นอันดับแรกมันจะถูกดำเนินการก่อนและไม่ให้การผลักดันที่ต้องการหลังจากการแสดงละครและกระทำเพียงเพราะมันวิ่งไปก่อน
&&รันคำสั่งที่สองบนบรรทัดเมื่อคำสั่งแรกกลับมาสำเร็จหรือด้วยระดับข้อผิดพลาดที่ 0 ซึ่งตรงกันข้ามกับ&&คือ||ซึ่งรันคำสั่งที่สองเมื่อคำสั่งแรกไม่สำเร็จหรือมีระดับข้อผิดพลาด 1
หรือคุณสามารถสร้างalise as git config --global alias.addcommit '!git add -a && git commit -m'และใช้เป็นgit addcommit -m "Added and commited new files"
คำตอบที่ยอดเยี่ยม แต่ถ้าคุณมองหาสิ่งที่น่าสนใจคุณสามารถต่อเชื่อมนามแฝงและเพลิดเพลินกับความสะดวกสบาย:
git add * && git commit -am "<commit message>"
มันเป็นบรรทัดเดียว แต่มีสองคำสั่งและตามที่กล่าวไว้คุณสามารถนามแฝงคำสั่งเหล่านี้:
alias git-aac="git add * && git commit -am " (ช่องว่างที่ปลายเป็นสิ่งสำคัญ) เนื่องจากคุณกำลังจะกำหนดพารามิเตอร์คำสั่งสั้น ๆ ใหม่
นับจากนี้เป็นต้นไปคุณจะใช้นามแฝงนี้:
git-acc "<commit message>"
คุณบอกว่า:
คอมไพล์เพิ่มไฟล์ที่ไม่ได้ติดตามทั้งหมดให้กับฉันและคอมมิทด้วยข้อความคอมมิทที่ได้รับนี้
หวังว่าคุณจะใช้ Linux หวังว่านี่จะช่วยได้
คุณสามารถเขียนสคริปต์ขนาดเล็ก (ดูคำตอบของ Ian Clelland) ที่เรียกว่าgit-commitallซึ่งใช้คำสั่ง git หลายคำเพื่อดำเนินการในสิ่งที่คุณต้องการ วางสคริปต์นี้ในทุกที่ของคุณของคุณ
$PATHคุณสามารถเรียกมันได้โดยgit commitall... มีประโยชน์มาก!
พบที่นี่ (คำถามและคำตอบทั้งหมดถูกลบ แต่น่าเสียดายที่มีชื่อเสียงสูงเท่านั้น)
ลองใช้:
git add . && git commit -m "your message here"