ฉันใช้ Gitosis เพื่อจัดการที่เก็บ Git บางตัวบนเซิร์ฟเวอร์ระยะไกล ตั้งแต่เริ่มแรกฉันก็ทำผิดพลาดมากมาย นั่นเป็นเหตุผลที่ตอนนี้ฉันต้องลบที่เก็บ Git ที่ฉันสร้างขึ้นด้วย Gitosis เป็นไปได้โดยใช้ Gitosis หรือฉันต้องเข้าสู่เครื่องนั้นและทำจากที่นั่น?
ฉันใช้ Gitosis เพื่อจัดการที่เก็บ Git บางตัวบนเซิร์ฟเวอร์ระยะไกล ตั้งแต่เริ่มแรกฉันก็ทำผิดพลาดมากมาย นั่นเป็นเหตุผลที่ตอนนี้ฉันต้องลบที่เก็บ Git ที่ฉันสร้างขึ้นด้วย Gitosis เป็นไปได้โดยใช้ Gitosis หรือฉันต้องเข้าสู่เครื่องนั้นและทำจากที่นั่น?
คำตอบ:
Gitosis ด้วยตัวเองไม่ได้มีฟังก์ชั่นลบเพราะวิธีการจัดการผ่านคอมมิท หากคุณลบที่เก็บออกจากgitosis.conf
และยอมรับการเปลี่ยนแปลงดังนั้นที่เก็บจะไม่สามารถเข้าถึงได้อีกต่อไป คุณสามารถเปิดใช้งานอีกครั้งในภายหลังหรือในที่สุดคุณสามารถเข้าสู่เซิร์ฟเวอร์และลบไฟล์ออกจากrepositories/
ไดเรกทอรีgitosis
ฉันโคลนที่gitosis-admin.git
เก็บของฉันและเพิ่มข้อตกลงต่อไปนี้แล้ว:
[group gitosis-admin]
writable = gitosis-admin test1
members = jbouse
จากนั้นฉันไปที่โฮมไดเร็กตอรี่ของฉันและทำสิ่งต่อไปนี้:
mkdir test1
cd test1
git init
git remote add origin git@server:test1.git
echo "Testing" > test.txt
git add test.txt
git commit -m 'First commit'
git push origin master:refs/heads/master
นี่ควรผลักดันไปยังเซิร์ฟเวอร์เรียบร้อยแล้วจากนั้นฉันก็เช็ดไดเรคทอรีtest1
ออกไปแล้วทำการโคลนจาก gitosis:
git clone git@server:test1.git
cd test1
echo "Test worked" > test.txt
git add test.txt
git commit -m 'Second commit'
git push
สิ่งนี้ควรผลักดันให้สำเร็จเช่นกันดังนั้นฉันจึงลบtest1
บรรทัดออกจากการกำหนดค่าgitosis.conf
และส่งการเปลี่ยนแปลง ... ฉันลองทำสิ่งต่อไปนี้:
cd test1
echo "Final test" > test.txt
git add test.txt
git commit -m 'Third commit'
git push
ไม่เหมือนสองอันก่อนหน้านี้ที่ผลักดันสิ่งนี้ล้มเหลวด้วยข้อความแสดงข้อผิดพลาดต่อไปนี้:
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly
ข้อผิดพลาดคือเนื่องจาก gitosis ไม่มีการกำหนดค่าใด ๆ สำหรับที่test1
เก็บตอนนี้ หากคุณพยายามโคลนที่เก็บอีกครั้งคุณจะได้รับข้อผิดพลาดเดียวกัน
คุณต้องเข้าสู่เครื่องและลบที่เก็บที่นั่นแล้วคุณต้องลบที่เก็บออกจากไฟล์การกำหนดค่า gitosis
คำตอบของ Jeremy Bouse เป็นกลยุทธ์ที่ดี แต่ไม่ได้ลบ repo จริงๆ บางครั้งคุณอาจจำเป็นต้องลบ repo โดยเฉพาะเนื่องจากพื้นที่ดิสก์ความปลอดภัย ฯลฯ
ดังนั้นฉันขอแนะนำวิธีการ ultrafedde ด้วยนอกเหนือจากที่คุณอาจจะต้องsu
ลบ repo ที่ผู้ใช้ "git" คุณตั้งค่าเป็นเจ้าของ