Як створити резервну копію gpo repo?


26

Я планую перейти з SVN на git. За допомогою svn я просто копіюю папку repo, коли я хочу її створити. Однак у git немає такого, що мені робити?

Чи слід створити клон на окремому диску та оновити, витягнувши з мого проекту? Тоді я можу записати / архівувати цю папку, і вона матиме всю історію?

Це, мабуть, очевидно, але я хочу переконатися, що стосується резервного копіювання. Я все ще прикидаюся, що є кореневе сховище.


Дивіться також: Резервне копіювання сховища GitHub (відповіді працюють і для не-GitHub git-проектів)
Мартін Тома

Відповіді:


14

Ви просто скопіюйте це. мерзотник робить використовувати папку репо, це просто приховано від звичайного директивних. (Папка названа .gitв * nix системах, тому вона з'являється лише в тому випадку, якщо ви її використовуєте ls -a. Я припускаю, що вона встановлює "прихований" атрибут у Windows, але я ніколи не використовував git у середовищі Windows, тому я не впевнений у цьому як це обробляється там.)


Є кілька файлів проекту в моєму багажнику, який я ігнорую. То я буквально можу це скопіювати? (Я вважаю, що він працює так само, як і Linux). Тож чи клонується лише копія файлу? Я здогадуюсь, якщо я перетягну всі потрібні мені дані в папку. Я перевірив, чи є .git-файли, але є всі файли .svn в моєму стволі svn і не думав перевіряти, чи є там дані історії

2
У Windows все ще .gitє атрибут "Прихований".
grawity

1
@ acidzombie24: .gitКаталог містить весь стан сховища, включаючи історію. (Ось така «розподілена» частина.)
недорогість

5
@grawity: його більше "самодостатня" частина, розподілена частина - це коли ви обмінюєтеся різними між власними сховищами :)
akira

19

Відповідь akira правильна, але ви можете додати --mirror для створення голого репо (для трохи меншої резервної копії).

Ми використовуємо таку стратегію (майже точно):

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
Це корисно, дякую. Як використати резервну копію репосту для відновлення робочого дерева?
День Джонатана

10

Я використовую пакет git . Для створення файлу копіювання (один файл резервного копіювання) виконайте:

git bundle create backup.bundle master

Щоб відновити сховище за допомогою ведучого відділення, просто клонуйте файл backup.bundle:

git clone backup.bundle -b master my-project

2

створити нового клона десь в іншому місці:

 % git clone yourepo somewhereelse

btw, git має папку repo, ви можете знайти її у робочій копії під підкаталогом .git. у кожній робочій копії є "папка repo".


10
Я не думаю, що клон прийнятний як резервна копія, оскільки це не точна копія. Принаймні віддалені гілки клонованого репо будуть відсутні в клоні, а гілки клонованого репо будуть виглядати як віддалені гілки в клоні.
sleske
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.