การใช้เครื่องหมายอัศเจรีย์ในข้อความคอมมิต Git ผ่านบรรทัดคำสั่ง


152

ฉันจะใส่เครื่องหมายอัศเจรีย์ลงในข้อความคอมมิท Git จากบรรทัดคำสั่งได้อย่างไร

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

ฉันต้องการสิ่งนี้:

git commit -am "Nailed it!"

6
สำหรับคำอธิบายว่าทำไมปัญหานี้จึงเกิดขึ้นตั้งแต่แรก: askubuntu.com/questions/434832//
ทำเครื่องหมาย Amery

คำตอบ:


226

ใช้เครื่องหมายคำพูดเดี่ยวแทนเครื่องหมายคำพูดคู่

git commit -am 'Nailed it!'

อีกทางเลือกหนึ่งถ้าคุณต้องการใช้เครื่องหมายคำพูดคู่ด้วยเหตุผลใดก็ตาม แต่ยังต้องการตัวอักษร!ให้ปิดการขยายประวัติที่ด้านบนสุดของสคริปต์ของคุณผ่านset +H


48
หรือเพียงแค่ผสมคำพูดของคุณ:git commit -am "$FOO: Nailed it"'!'
Cascabel

4
นี่ไม่ทำงานสำหรับฉันใน OS X ดังนั้นฉันเพิ่งใช้git commit(ไม่ -m) เพื่อเปิดโปรแกรมแก้ไขข้อความสำหรับข้อความของฉัน
Kevin C.

ใน OSX ให้ใช้git commit -m "This is the best code ever"!ตามที่อธิบายไว้ใน @Ryan H. answer
mljrg

42

อีกวิธีในการแก้นั่นคือการเพิ่มช่องว่างหลังจาก! ชอบ:

git commit -am "Nailed it! "

สังเกตช่องว่างระหว่าง! และสุดท้าย"

(พื้นที่จะไม่รวมอยู่ในข้อความการส่ง - Git จดจ้องช่องว่างต่อท้ายจากการส่งข้อความโดยอัตโนมัติ)


3
นี้ดูเหมือนว่าทางออกที่ง่ายที่สุดกับผมและช่วยให้ราคาสองครั้งที่มีการแก้ไขตัวแปร: git commit -m "$(sillyname) $(buzzphrase). $(superb)! ":)
อเล็กซ์ฮอลล์

4

ไม่จำเป็นต้องจำคำพูดใด ๆ หรือใช้ Escape แทน

  1. พิมพ์คำสั่งของคุณ (หรือส่วนหนึ่งของมัน)
  2. ในบรรทัดคำสั่งของคุณกด Ctr X E»จะเปิด "ตัวแก้ไขภายนอก" ของคุณ
  3. แก้ไขคำสั่งของคุณและปิดตัวแก้ไขของคุณ

... คำสั่งจะถูกดำเนินการและอักขระพิเศษใด ๆ จะแสดงขึ้นอย่างถูกต้องในข้อความคอมมิท Git!

(การใช้งาน NB อื่น ๆ อีกมากมาย: การพิมพ์คำสั่งที่ซับซ้อนการเพิ่มตัวแบ่งบรรทัดในข้อความคอมมิท ฯลฯ


4

หากคุณจำเป็นต้องใช้เครื่องหมายคำพูดคู่และ!ตัวอักษรตัวสุดท้ายในข้อความเพียงแค่!ใส่เครื่องหมายคำพูดไว้ด้านนอกเนื่องจากเราเพียงใช้เครื่องหมายคำพูดเพื่อให้มีการเว้นวรรครวมอยู่ในข้อความ

git commit -m "Reverting last commit because I don't like it"!

หากคุณต้องการรวม!สตริงกลางคุณสามารถใช้เครื่องหมายคำพูดเดี่ยว แต่ถ้าคุณต้องการใช้เครื่องหมายคำพูดเดี่ยวคุณจะต้องปิดเครื่องหมายอัญประกาศจากนั้นจึงใส่เครื่องหมายคำพูด'นอกกรอบ ดังนั้นสมมติว่าข้อความของคุณคือI don't like it! Reverting again!นี้สามารถประกอบด้วย'I don'+ \'+'t like it! Reverting again!'

git commit -m 'I don'\''t like it! Reverting again!'

อะไรที่ซับซ้อนกว่านี้คุณน่าจะดีกว่าgit commitและปล่อยให้ git เรียกโปรแกรมแก้ไขข้อความเริ่มต้นของคุณ :)


1

คุณยังสามารถพิมพ์:

git commit -am "Nailed it
!
"

ดังนั้นเพียงกดปุ่ม Enter และวางเครื่องหมายอัศเจรีย์บนบรรทัดใหม่จากนั้นปิดข้อความการส่งข้อความ พบว่าหนึ่งโดยบังเอิญในวันหนึ่ง


6
สิ่งนี้จะแทรกขึ้นบรรทัดใหม่ตามตัวอักษรก่อนเครื่องหมายอัศเจรีย์ลงในข้อความการส่งมอบซึ่งน่าเกลียด -1
Mark Amery

-3

อืมมม การหลบหลีกด้วยสแลชจะไม่แสดงขึ้นในข้อความยืนยันสำหรับฉัน

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