git setup для резервного копирования и синхронизации между двумя компьютерами - PullRequest
5 голосов
/ 26 июня 2011

Я новичок в Git. Нужно несколько советов, чтобы узнать, если мои настройки верны. Пожалуйста, прочитайте ниже:

Я использую git для двух отдельных проектов на своем компьютере разработчика и хочу сделать резервную копию всего на USB-накопителе (настройка как репозиторий git bare). Кроме того, я хочу синхронизировать эти проекты на другом компьютере (для развертывания).

2 пути проектов на компьютере1

/machine1/path/proj1
/machine1/path/proj2 

Вот как я настроил (повторил те же шаги для proj2)

#Initialize git repo
cd /machine1/path/proj1
git init
git add .
git commit -a -m "proj 1 first commit"

#Backup on USB
cd /usb/backup
mkdir proj1.git
cd proj1.git
git init --bare
cd /machine1/path/proj1
git push --mirror /usb/backup/proj1.git

#Clone to other computer
cd /machine2/path
git clone /usb/backup/proj1.git

#After making changes on machine1, I update machine2 using this command
git pull /usb/backup/proj1.git

Вопрос:

  1. Правильны ли эти шаги для (i) настройки, (ii) резервного копирования по USB, (iii) синхронизации с другими машинами? Или есть правильный / лучший способ сделать это ?
  2. Я по ошибке выполнил эти команды

cd /machine2/path/proj2
git pull /usb/backup/proj1.git  

Я ожидал, что git покажет сообщение об ошибке ... что-то вроде "попытки синхронизировать proj2 с репозиторием proj1", но вместо этого он создал подкаталог proj2 внутри proj1. Есть ли недостаток в моей настройке? Я ожидал, что для такого действия потребуется переключатель --force, иначе произойдет фатальная ошибка

Ответы [ 2 ]

4 голосов
/ 26 июня 2011

Шаги в основном правильные, за исключением того, что я предпочитаю , используя git bundle с USB-ключом (т.е. я предпочитаю иметь на USB-ключе один файл на проект вместо многих файлов: меньше шансов на повреждение файла). Вы можете создать один с тегами и ветвями , а затем извлечь из этих пакетов.

Что касается проблемы с извлечением, я бы рекомендовал установить удаленный :

got remote add origin /usb/backup/proj1.git

Таким образом, вы бы "pull origin" вместо ручного ввода адреса (который вы можете перепутать).

Подробнее см. Удаленное использование Groking git .

1 голос
/ 26 июня 2011

Вы также можете использовать метод перехвата после получения, просто настроив пульт для вашего USB, а также пульт для вашего производственного сервера. Хук post-receive заставляет извлекать все, где вы говорите, поэтому, когда вам нужно, вы можете просто набрать «git push usb», и он должен проверить -f на вашей флешке или производственном сервере.

Проверьте это ... http://toroid.org/ams/git-website-howto

...