ข้าม Git ส่ง hooks


504

ฉันกำลังมองหา git hook ซึ่งค้นหาคำสั่งการพิมพ์ในโค้ด Python หากพบคำสั่งพิมพ์คำสั่งนี้จะป้องกันการคอมมิต

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


1
วิธีแก้ปัญหาที่ใช้กันทั่วไปมากขึ้น (ใช้ได้กับคำสั่ง git ที่แตกต่างcommit): stackoverflow.com/questions/58337861/…
Gabriel Devillers

คำตอบ:


867

อาจจะ (จากgit commitหน้าคน ):

git commit --no-verify

-n  
--no-verify

ตัวเลือกนี้จะผ่านการขอล่วงหน้าและ commit-msg hooks ดูเพิ่มเติมgithooks (5)

ในฐานะที่เป็นความเห็นโดยเบลส , -nสามารถมีบทบาทที่แตกต่างกันสำหรับคำสั่งบางอย่าง
ยกตัวอย่างเช่นgit push -nจริงๆแล้วมันเป็นความแห้งแล้ง
เพียง แต่git push --no-verifyจะข้ามเบ็ด


หมายเหตุ: Git 2.14.x / 2.15 ปรับปรุงพฤติกรรม --no-Verify:

ดูกระทำ 680ee55 (14 สิงหาคม 2017) โดยเควิน Willford ( ``)
(ผสานโดยJunio ​​C Hamano - gitster- in c3e034f , 23 Aug 2017)

commit: ข้ามดัชนีทิ้งหากไม่มีpre-commitตะขอ

" git commit" ใช้ในการทิ้งดัชนีและอีกครั้งอ่านจากระบบแฟ้มเพียงในกรณีที่pre-commitเบ็ดได้รับการปรับปรุงในช่วงกลาง; สิ่งนี้ได้รับการปรับให้เหมาะสมเมื่อเรารู้ว่าเราไม่ได้ใช้งานpre-commitเบ็ด


Davi ลิมาชี้ให้เห็นในความคิดเห็นgit cherry-pickไม่ไม่สนับสนุน --no-ตรวจสอบ
ดังนั้นถ้า cherry-pick ก่อให้เกิดเบ็ด pre-commit คุณอาจต้องแสดงความคิดเห็น / ปิดการใช้งานอย่างใดอย่างหนึ่งในบล็อกโพสต์นี้เพื่อขอ git cherry-pick ของคุณเพื่อดำเนินการต่อ
กระบวนการเดียวกันจะมีความจำเป็นในกรณีของ a git rebase --continueหลังจากการแก้ไขข้อขัดแย้งผสาน



1
@DaviLima ขอบคุณ ฉันได้รวมความคิดเห็นของคุณไว้ในคำตอบสำหรับการมองเห็นแล้ว
VonC

1
ขอบคุณ @Vonc เกิดขึ้นเหมือนกันสำหรับgit rebase --continuebtw
Davi Lima

สวัสดีในกรณีของฉันมีใครบางคนในทีมของฉันอัปเดตhookโฟลเดอร์ของฉันด้วยสคริปต์ที่กำหนดไว้ล่วงหน้ามันน่ารำคาญมากมีวิธีที่ฉันสามารถป้องกันไม่ให้hookโฟลเดอร์ของฉันถูก overriden โดย git pull หรือไม่?
Zennichimaro

@Zennichimaro บางทีคุณสามารถคัดลอกโฟลเดอร์ repo hook ที่อื่นและตั้งค่า hook post-merge ( git-scm.com/docs/githooks#_post_merge ) ซึ่งจะตรวจจับว่าการดึงมีผลกับโฟลเดอร์ repo hook หรือไม่และจะเสนอให้คัดลอกตะขอ เนื้อหาไปยังโฟลเดอร์ hook ในเครื่องของคุณ (นอก Repo): ด้วยวิธีนี้คุณสามารถควบคุมอย่างน้อยที่สุดถ้าคุณต้องการแทนที่ hooks ของคุณหรือไม่โดยสิ่งที่เพื่อนร่วมงานผลักดัน
VonC

22

จากman githooks:

pre-commit
hook นี้ถูกเรียกใช้โดย git commit และสามารถข้ามด้วยตัวเลือก --no-Verify มันไม่ใช้พารามิเตอร์และถูกเรียกใช้ก่อนที่จะได้รับข้อความบันทึกการคอมมิชชันที่เสนอและทำการคอมมิต การออกจากสถานะที่ไม่เป็นศูนย์จากสคริปต์นี้ทำให้ git ส่งการยกเลิก


2

สำหรับผู้very beginnersที่ใช้เวลาไม่กี่ชั่วโมงสำหรับการกระทำนี้ (ด้วยcommentและno verify) โดยไม่มีปัญหาเพิ่มเติม

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