git hooks ถูกผลักไปที่รีโมทเมื่อฉัน 'git push' หรือไม่?


96

ถ้าฉันสร้างสคริปต์ hook ใหม่ในที่เก็บในเครื่องของฉันใน repo / .git / hooks / post-comm แล้วฉันเรียกใช้ "git push" ตะขอจะถูกผลักไปที่รีโมตหรือไม่ จากนั้นเมื่อนักพัฒนารายอื่นเรียกใช้ "git pull" จากแหล่งกำเนิดเดียวกันพวกเขาจะได้รับ hooks ใหม่ของฉันหรือไม่?


3
บางทีความช่วยเหลือนี้stackoverflow.com/questions/3462955/…
RenéHöhle

ที่เกี่ยวข้อง (พร้อมคำตอบที่มีประโยชน์มาก): สคริปต์ Git hook สามารถจัดการพร้อมกับที่เก็บได้หรือไม่
377

คำตอบ:


82

ไม่ได้ตะขอเป็นแบบต่อที่เก็บและจะไม่ถูกดัน ในทำนองเดียวกันการกำหนดค่า repo จะไม่ได้รับการผลักดันหรือไม่มีอะไรใน.git/infoหรือสิ่งอื่น ๆ อีกมากมาย

การผลักและดึงจะแลกเปลี่ยนเฉพาะกิ่งไม้ / แท็กและกระทำวัตถุ (และสิ่งที่เข้าถึงได้จากการกระทำเช่นต้นไม้หยดน้ำ)


14
มีวิธีที่จะมีตะขออยู่ตรงกลางและดึงพวกมันออกจากแต่ละโคลนและนำไปใช้
f1wade

4
@ f1wade คุณสามารถเพิ่ม.githooksไดเรกทอรีที่จะควบคุมรุ่นแล้วทั้ง SYM .gitเชื่อมโยงหรือสร้างเสื้อคลุมสคริปต์เบ็ดจากภายใน การโคลนจะไม่ต่อสายโดยอัตโนมัติ.githooksแต่เมื่อต่อสายเข้าแล้วคุณสามารถดันและดึงสคริปต์ hook เวอร์ชันใหม่ได้
Philip Couling

48

ไม่ git hooks จะไม่ถูกผลักหรือดึงเนื่องจากไม่ได้เป็นส่วนหนึ่งของรหัสที่เก็บ

โปรดดูเอกสารประกอบสำหรับรายการตะขอฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์

หากคุณต้องการเปิดใช้ตะขอบางอย่างสำหรับลูกค้าทั้งหมดที่โคลนหรือดึงจากพื้นที่เก็บข้อมูลที่กำหนดคุณจะต้องเพิ่มตะขอเพื่อ codebase repo/.git/hooks/ของคุณแล้วสร้างสคริปต์ของคุณเองเพื่อคัดลอกลงในหรือเชื่อมโยงไปยังพวกเขาจาก


4
แต่สคริปต์การคัดลอกเรียกว่าอย่างไร
Adam Johns

6
@AdamJohns ถูกเรียกโดยผู้ใช้ / ผู้พัฒนาซึ่งอาจอยู่ในรูปแบบของการsetup.shที่ dev ทำงานเมื่อพวกเขาโคลนที่เก็บครั้งแรก หลังจากนี้การอัปเดต hooks จะเกิดขึ้นโดยอัตโนมัติโดยมี hook ที่รันสคริปต์อีกครั้งเพื่ออัปเดตหลังจากดึงทุกครั้ง คุณจึงไม่จำเป็นต้องพึ่งพาผู้พัฒนาให้ทำเอง
cm92

5

ไม่น่าเศร้า แต่เนื่องจาก git 2.9 คุณสามารถวางไว้ในโฟลเดอร์. githooks (ตามที่คนอื่นกล่าวถึง) และเรียกใช้:

git config --local core.hooksPath .githooks/

จึงไม่จำเป็นต้องมี symlink หรือคัดลอกไฟล์

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