ใช่มันเป็นไปได้อย่างแน่นอน
ให้บอกว่าฉันมีที่เก็บชื่อเปลือย/srv/production.git
บนระบบปลายทาง / เซิร์ฟเวอร์
บนระบบปลายทางฉันสามารถใช้คำสั่ง cd /srv/production.git; GIT_WORK_TREE=/srv/production-www/ git checkout -f
หากฉันอยู่ในที่เก็บที่ไม่ได้เปิดใช้งานคำสั่งจะแตกต่างกันเล็กน้อย ช่วยบอกฉันมี respository /srv/testing
ไม่ใช่เปลือยที่ เพื่อเช็คเอาต์ที่ฉันจะใช้cd /srv/testing/.git; GIT_WORK_TREE=/srv/production-www/ git checkout -f
ในความเป็นจริงในระบบของฉันฉันยังทำสิ่งนี้โดยอัตโนมัติในเบ็ด post-commit ในที่production.git
เก็บของฉัน ดังนั้นเมื่อคุณผลักดันให้production.git
เป็นรุ่นล่าสุดจะตรวจสอบโดยอัตโนมัติไปยังเว็บรูท
#!/bin/sh
#
# An example hook script that is called after a successful
# commit is made.
#
# To enable this hook, rename this file to "post-commit".
GIT_WORK_TREE=/srv/production-www/ git checkout -f
# ... misc other commands to verify permissions are set correctly.
หากการเข้าถึงระบบระยะไกลเพียงอย่างเดียวของคุณคือ webdav แน่นอนควรเป็นไปได้ที่จะเขียนตะขอหลังการกระทำที่จะเช็คเอาต์ไปยังโฮสต์ webdav ไม่ว่าโดยตรงหรือไปยังตำแหน่งชั่วคราวซึ่งคุณสามารถสคริปต์อัพโหลดได้