2011-01-18 3 views
3

Я пытаюсь работать над проектом с некоторыми членами команды, и мы используем git как наш источник управления. Наш центральный репозиторий находится на Dropbox, к которому у всех нас есть доступ.Git commit to Dropbox repository issues

Я новичок в git, но я нашел здесь несколько инструкций, которые помогут вам настроить все. Для меня это работает, но для моих товарищей по команде, когда они пытаются совершить/нажимать, он не обновляет файл. Вот шаги, мы следовали:

Я сделал это:

~/project $ git init 
~/project $ git add . 
~/project $ git commit -m "first commit" 
~/project $ cd ~/Dropbox/git 

~/Dropbox/git $ mkdir source.git 
~/Dropbox/git $ cd source.git 
~/Dropbox/git $ git init --bare 
~/Dropbox/git $ cd ~/project 

~/project $ git remote add origin ~/Dropbox/git/source.git 
~/project $ git push origin master 

Тогда на моем компьютере я создал test.txt, поставить некоторые вещи в нем, сделал:

~/project $ git add . 
~/project $ git commit -m "second commit" 
~/project $ git push 

изменения были перенесены с моего компьютера в репозиторий Dropbox.

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

~/Desktop $ cd ~/project 
~/project $ git clone -o dropbox ~/Dropbox/project/source.git 

Затем они получили все файлы на своем компьютере, но когда они обновляются test.txt, фиксации и нажать, то Dropbox файл test.txt ISN» t обновлено. Файлы .git обновляются, чтобы показать новую фиксацию, но файл test.txt хранилища не показывает никаких изменений.

Что мы делаем неправильно? Спасибо!

+0

'.git файлы обновляются, чтобы показать новый коммит'. Что говорит git об фиксации? Что это пусто? –

ответ

2

Вы ничего не делаете неправильно, это просто, как работает git. Репозиторий (в основном каталог .git) и рабочая копия (файлы, которые вы редактируете) - это две разные вещи. push только обновляет репозиторий, но не рабочую копию. Рабочая копия по уважительным причинам никогда не обновляется автоматически (изображение, вы потеряете свою работу, только потому, что ваш сотрудник переместился в ваш репозиторий).

Прочитайте документацию Git о крючках, чтобы установить крюк после приема, который обновляет рабочую копию.

+0

Я считаю, что он говорит о том, что файл репозитория не обновляется, а не его местная рабочая копия. – Jimmy

+0

Джимми прав. Файл репозитория не обновляется, и я ожидаю его. Я не ожидаю, что рабочий файл будет обновлен, если я не сделаю 'git fetch' – robev

+0

Итак, похоже, что он работает, я ошибся. Этот ответ был полезен, хотя. – robev

0

Не используйте Dropbox для репликации git. В конечном итоге у вас будут конфликты в отдельных файлах, которые невозможно будет решить. Используйте реальный git-репо, например, unuddle.com, github и т. Д.

Помимо этого, пройдите через учебник git, когда это возможно.