ฉันจะทำการเปลี่ยนแปลงโดยไม่ระบุข้อความคอมมิตได้อย่างไร? เหตุใดจึงต้องมีโดยปริยาย?
git commit -a --allow-empty-message -m ''
ทำให้กระทำด้วยการกระทำข้อความ " ''
" git commit -a --allow-empty-message -m ""
ดังนั้นจึงเป็นการดีที่จะใช้คำสั่งนี้แทน:
ฉันจะทำการเปลี่ยนแปลงโดยไม่ระบุข้อความคอมมิตได้อย่างไร? เหตุใดจึงต้องมีโดยปริยาย?
git commit -a --allow-empty-message -m ''
ทำให้กระทำด้วยการกระทำข้อความ " ''
" git commit -a --allow-empty-message -m ""
ดังนั้นจึงเป็นการดีที่จะใช้คำสั่งนี้แทน:
คำตอบ:
โดยทั่วไป git ต้องการข้อความที่ไม่ว่างเปล่าเนื่องจากการให้ข้อความยืนยันที่มีความหมายเป็นส่วนหนึ่งของแนวปฏิบัติในการพัฒนาที่ดีและการดูแลพื้นที่เก็บข้อมูลที่ดี บรรทัดแรกของข้อความคอมมิตถูกใช้ทั่วทุกที่ภายในคอมไพล์ สำหรับข้อมูลเพิ่มเติมอ่าน"หมายเหตุเกี่ยวกับ Git Commit ข้อความ"
หากคุณเปิด Terminal.app cd
ไปยังไดเร็กทอรีโปรเจ็กต์ของคุณและgit commit -am ''
คุณจะเห็นว่าล้มเหลวเนื่องจากไม่อนุญาตให้มีข้อความคอมมิตว่าง git เวอร์ชันใหม่กว่ามี
--allow-empty-message
อาร์กิวเมนต์บรรทัดคำสั่งรวมถึงเวอร์ชันของ git ที่รวมอยู่ใน Xcode เวอร์ชันล่าสุด สิ่งนี้จะช่วยให้คุณใช้คำสั่งนี้เพื่อทำการคอมมิตด้วยข้อความว่างเปล่า:
git commit -a --allow-empty-message -m ''
ก่อนที่จะ--allow-empty-message
ตั้งค่าสถานะคุณต้องใช้commit-tree
คำสั่งประปา คุณสามารถดูตัวอย่างของการใช้คำสั่งนี้ในส่วน "ดิบ Git" บทของหนังสือ Git
git
มี--allow-empty-message
อาร์กิวเมนต์บรรทัดคำสั่ง โปรดดูเอกสารที่นี่ git-commit-tree
มันพูดถึงคุณใช้เพื่อให้สามารถที่จะบรรลุในสิ่งเดียวกันโดยใช้คำสั่งการประปา
git diff
จะแสดงบุคคลที่สนใจว่าสิ่งที่กระทำมี, โดยไม่ต้องอาศัยคำอธิบายของมนุษย์เป็นลายลักษณ์อักษร เครื่องจักรควรช่วยเราจากการใช้แรงงานเท่าที่จะทำได้
git diff
มันไม่สามารถอธิบายได้ในตัวเองแม้ว่าผู้สื่อสารจะเชื่อก็ตาม
และถ้าคุณเพิ่มนามแฝงมันจะดีกว่านี้ใช่ไหม
git config --global alias.nccommit 'commit -a --allow-empty-message -m ""'
ตอนนี้คุณเพิ่งทำ nccommit, nc เพราะไม่มีความคิดเห็นและทุกอย่างควรได้รับการยอมรับ
เมื่อดำเนินการอัปเดตโค้ดที่สำคัญหากคุณต้องการจุดปลอดภัยระดับกลางจริงๆคุณอาจทำดังนี้
git commit -am'.'
หรือสั้นกว่า:
git commit -am.
diff
มันทั้งหมด
หมายเหตุ: เริ่มต้น git1.8.3.2 (กรกฎาคม 2013) คำสั่งต่อไปนี้ ( กล่าวถึงข้างต้นโดยJeremy W Sherman ) จะไม่เปิดตัวแก้ไขอีกต่อไป:
git commit --allow-empty-message -m ''
ดูการกระทำ 25206778aac776fc6cc4887653fdae476c7a9b5a :
หากระบุข้อความว่างพร้อมตัวเลือก
-m
git คอมมิตตัวแก้ไขจะเริ่มทำงาน
เป็นเรื่องที่ไม่คาดคิดและไม่จำเป็น
แทนที่จะใช้ความยาวของสตริงข้อความเพื่อตรวจสอบว่าผู้ใช้ระบุหรือไม่โปรดจำไว้โดยตรงว่ามีการให้ตัวเลือก-m
หรือไม่
git 2.9 (มิถุนายน 2016) ปรับปรุงพฤติกรรมข้อความว่าง:
ดูกระทำ 178e814 (6 เมษายน 2016) โดยอดัม Dinwoodie (me-and
)
ดูกระทำ 27014cb (7 เมษายน 2016) โดยเจฟฟ์คิง (peff
)
(รวมโดยJunio C Hamano - gitster
-ในการกระทำ 0709261 , 22 เมษายน 2016)
commit
: อย่าเพิกเฉยต่อข้อความว่างที่มอบให้โดย-m ''
- "
git commit --amend -m '' --allow-empty-message
" แม้ว่าจะดูแปลก แต่ก็เป็นคำขอที่ถูกต้องในการแก้ไขข้อผูกพันที่ไม่มีข้อความเลย
เนื่องจากการตรวจจับที่ผิดพลาดของการมี-m
อยู่ในบรรทัดคำสั่งเราจึงต้องเก็บข้อความบันทึกจากคอมมิตเดิม- "
git commit -m "$msg" -F file
" ควรถูกปฏิเสธไม่ว่า$msg
จะเป็นสตริงว่างหรือไม่ แต่เนื่องจากข้อบกพร่องเดียวกันจึงไม่ถูกปฏิเสธเมื่อ$msg
ว่างเปล่า- "
git -c template=file -m "$msg"
" ควรละเว้นเทมเพลตแม้ว่า$msg
จะว่างเปล่า แต่ไม่ได้ใช้และใช้เนื้อหาจากไฟล์เทมเพลตแทน
คุณไม่จำเป็นต้องคอมไพล์เพื่อทำสิ่งนี้ให้สำเร็จ การใช้ฟังก์ชันทุบตีอย่างสร้างสรรค์จะช่วยแก้เคล็ดได้ดี หากคุณไม่สนใจข้อความเพียงแค่ตั้งค่าเริ่มต้นและลืมมัน
function gitcom() {
git commit -m "my default commit message"
}
หากคุณรู้สึกผจญภัยจริงๆคุณสามารถเพิ่มยอมรับและผลักดันด้วยคำสั่งเดียว
function gitzap() {
git add . && git commit -m "whatevs" && git push $1 $2
}
ซึ่งคุณจะเรียกใช้เป็น
gitzap origin master
คุณยังสามารถเจาะลึกและใช้ parse_git_branch เพื่อช่วยตัวเองในการกดแป้นพิมพ์บางครั้งหรือตั้งค่าเริ่มต้นทั่วไปของ "ต้นกำเนิด" และ "หลัก"
git-com
และgit-zap
(ไม่มีนามสกุล) และวางไว้ที่ไหนสักแห่งที่คอมไพล์สามารถหาพวกเขา (คือที่ไหนสักแห่งในเส้นทางของคุณ) ถือว่าคอมไพล์พวกเขาเช่นคำสั่งคอมไพล์ปกติและคุณสามารถเรียกพวกเขาเช่นนี้git com
,git zap origin master
Git ต้องการคอมมิตเพื่อแสดงความคิดเห็นมิฉะนั้นจะไม่ยอมรับการคอมมิต
คุณสามารถกำหนดค่าเทมเพลตเริ่มต้นโดยใช้ git เป็นข้อความคอมมิตเริ่มต้นหรือค้นหาแฟล็ก --allow-empty-message ใน git ฉันคิดว่า (ไม่แน่ใจ 100%) คุณสามารถกำหนดค่า git ใหม่เพื่อยอมรับข้อความคอมมิตว่าง (ซึ่งไม่ใช่ความคิดที่ดี) โดยปกติการกระทำแต่ละครั้งควรเป็นงานเล็กน้อยซึ่งอธิบายไว้ในข้อความของคุณ
ฉันมีการกำหนดค่าต่อไปนี้ในโครงการส่วนตัวของฉัน:
git config alias.auto 'commit -a -m "changes made from [device name]"'
ด้วยวิธีนี้เมื่อฉันรีบฉันจะทำ
git auto
git push
และอย่างน้อยฉันก็รู้ว่าคอมมิตทำมาจากอุปกรณ์อะไร
ฉันพบวิธีแก้ปัญหาที่ง่ายที่สุด:
git commit -am'save'
นั่นคือทั้งหมดที่คุณจะหลีกเลี่ยงสิ่งที่คอมมิตส่งข้อความ
คุณยังสามารถบันทึกคำชมนั้นลงในการทุบตีหรือสิ่งของอื่น ๆ เพื่อให้ง่ายขึ้น
สมาชิกในทีมของเรามักจะเขียนข้อความเหล่านั้น แต่แทบจะไม่มีใครเห็นข้อความเหล่านั้นอีกเลย
ข้อความคอมมิตเป็นสิ่งที่ฆ่าเวลาอย่างน้อยในทีมของเราดังนั้นเราจึงไม่สนใจมัน
ข้อความคอมมิตเป็นแนวทางปฏิบัติที่ดีที่สุดที่ควรปฏิบัติตลอดเวลา เว้นแต่คุณจะเป็นผู้พัฒนาเพียงรายเดียวและจะไม่มีการเปลี่ยนแปลงในเร็ว ๆ นี้
git commit -a -m 'asdfasdfadsfsdf'
git commit -a --allow-empty-message -m ''
จะไม่เปิดโปรแกรมแก้ไขอีกต่อไป ดูคำตอบของฉันด้านล่าง