ฉันจะสำรอง repo คอมไพล์ได้อย่างไร


26

ฉันวางแผนที่จะเปลี่ยนจาก SVN เป็น git ด้วย svn ฉันเพิ่งคัดลอกโฟลเดอร์ repo ของฉันเมื่อฉันต้องการสำรอง อย่างไรก็ตามคอมไพล์ไม่มีสิ่งใดฉันจะทำอย่างไร

ฉันควรสร้างโคลนบนไดรฟ์แยกต่างหากและอัปเดตโดยดึงจากโครงการของฉันหรือไม่ จากนั้นฉันสามารถเขียน / เก็บถาวรโฟลเดอร์นี้และจะมีประวัติทั้งหมดหรือไม่

นี่อาจจะชัดเจน แต่ฉันต้องการตรวจสอบให้แน่ใจเมื่อมันมาถึงการสำรองข้อมูล ฉันยังแกล้งทำเป็นว่ามีที่เก็บ root


ดูเพิ่มเติมที่: สำรองข้อมูลที่เก็บ GitHub (คำตอบใช้ได้กับโครงการที่ไม่ใช่ GitHub git ด้วย)
Martin Thoma

คำตอบ:


14

คุณเพียงแค่คัดลอก คอมไพล์ไม่ใช้โฟลเดอร์ repo มันซ่อนเพียง แต่จากมุมมองไดเรกทอรีปกติ (โฟลเดอร์นี้มีชื่อ.gitอยู่ในระบบ * nix ดังนั้นจะปรากฏเฉพาะเมื่อคุณใช้ls -aเท่านั้นฉันถือว่ามันตั้งค่าคุณลักษณะ "hidden" ใน Windows แต่ฉันไม่เคยใช้ git ในระบบ Windows ดังนั้นฉันจึงไม่แน่ใจ วิธีจัดการที่นั่น)


มีไฟล์โครงการคู่ในหีบของฉันฉันไม่สนใจ ดังนั้นฉันจึงสามารถคัดลอกมันได้อย่างแท้จริง? (ฉันจะสมมติว่ามันทำงานในลักษณะเดียวกับ linux) ดังนั้นโคลนเป็นเพียงการคัดลอกไฟล์หรือไม่ ฉันเดาว่าฉันดึงข้อมูลทั้งหมดที่ฉันต้องการอยู่ในโฟลเดอร์ ฉันตรวจสอบว่ามีไฟล์. git แต่มีไฟล์. svn ในลำต้น svn ของฉันและไม่คิดว่าจะตรวจสอบว่ามีข้อมูลประวัติอยู่หรือไม่

2
บน Windows มันยังคง.gitมีแอตทริบิวต์ "ซ่อน"
grawity

1
@ acidzombie24: .gitไดเรกทอรีมีสถานะพื้นที่เก็บข้อมูลทั้งหมดรวมถึงประวัติ (นั่นคือส่วน "กระจาย")
grawity

5
@grawity: มากขึ้น "selfcontained" ส่วนของตนเป็นส่วนหนึ่งของการกระจายเมื่อคุณแลกเปลี่ยน diffs ระหว่างที่เก็บ selfcontained :) ความ
akira

19

คำตอบของอากิระนั้นถูกต้อง แต่คุณสามารถเพิ่ม - มิเรอร์เพื่อสร้าง repo เปล่า (สำหรับการสำรองข้อมูลที่น้อยกว่าเล็กน้อย)

เราใช้กลยุทธ์ดังต่อไปนี้ (เกือบจะแน่นอน):

git clone --mirror yourrepo backup.repo
tar cjf backup.repo.tar.bz2 backup.repo
scp backup.tar.bz2 ssh://somewhereelse

จากนั้นหากต้องการกู้คืนจากข้อมูลสำรองของคุณ:

tar xjf backup.repo.tar.bz2
git clone backup.repo yourrepo

2
สิ่งนี้มีประโยชน์ขอบคุณ ฉันจะใช้ repo ที่สำรองไว้เพื่อกู้คืนแผนผังการทำงานได้อย่างไร
Jonathan Day

10

ฉันใช้มัดคอมไพล์ สำหรับการทำสำเนาไฟล์ (ไฟล์สำรองหนึ่งไฟล์) จะทำงาน:

git bundle create backup.bundle master

หากต้องการคืนค่าที่เก็บด้วยสาขาหลักเพียงโคลนไฟล์ backup.bundle:

git clone backup.bundle -b master my-project

2

สร้างโคลนใหม่ที่อื่น:

 % git clone yourepo somewhereelse

BTW, คอมไพล์มีโฟลเดอร์ repo .gitคุณสามารถค้นหาได้ในการคัดลอกการทำงานของคุณอยู่ภายใต้ไดเรกทอรีย่อย สำเนาทำงานทุกอันมี "โฟลเดอร์ repo"


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