วิธีการลบที่เก็บ Git ด้วย Gitosis


10

ฉันใช้ Gitosis เพื่อจัดการที่เก็บ Git บางตัวบนเซิร์ฟเวอร์ระยะไกล ตั้งแต่เริ่มแรกฉันก็ทำผิดพลาดมากมาย นั่นเป็นเหตุผลที่ตอนนี้ฉันต้องลบที่เก็บ Git ที่ฉันสร้างขึ้นด้วย Gitosis เป็นไปได้โดยใช้ Gitosis หรือฉันต้องเข้าสู่เครื่องนั้นและทำจากที่นั่น?

คำตอบ:


13

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เก็บตอนนี้ หากคุณพยายามโคลนที่เก็บอีกครั้งคุณจะได้รับข้อผิดพลาดเดียวกัน


5
หลังจากนั้นคุณสามารถลบที่เก็บแบบฟิสิคัลบนเซิร์ฟเวอร์ เข้าสู่ระบบไปที่ไดเรกทอรีบ้านของคอมไพล์ไปที่ "คลังเก็บ" จากที่นั่นและคุณมีไดเรกทอรีสำหรับคลังเก็บทั้งหมดของคุณ ลบสิ่งที่คุณปิดการใช้งานใน gitosis.conf
Eugene Lazutkin

2

คุณต้องเข้าสู่เครื่องและลบที่เก็บที่นั่นแล้วคุณต้องลบที่เก็บออกจากไฟล์การกำหนดค่า gitosis


0

คำตอบของ Jeremy Bouse เป็นกลยุทธ์ที่ดี แต่ไม่ได้ลบ repo จริงๆ บางครั้งคุณอาจจำเป็นต้องลบ repo โดยเฉพาะเนื่องจากพื้นที่ดิสก์ความปลอดภัย ฯลฯ

ดังนั้นฉันขอแนะนำวิธีการ ultrafedde ด้วยนอกเหนือจากที่คุณอาจจะต้องsuลบ repo ที่ผู้ใช้ "git" คุณตั้งค่าเป็นเจ้าของ

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