Использование GIT для обновления файлов на локальном файловом сервере - PullRequest
1 голос
/ 04 февраля 2011

ОК, поэтому у меня есть настройки репо на моей машине, и я хочу использовать это для отправки обновлений в папку на файловом сервере. Я использовал следующее для клонирования:

Запуск в каталоге на машине:

git init
git add .
git commit -m 'initial'
cd ../

Затем клонирование на файловый сервер

git clone -bare testdir fileserverip/testdir

Это клоны, но как я могу использовать GIT для обновления? В отличие от моего предыдущего опыта работы с GIT, я не смотрю на соединение через SSH или что-то еще, как я могу настроить push?

EDIT:

После изменения моей настройки, как указано в ответе Makis Я получаю следующие ошибки на git push

james-macbook:test2 james$ git push
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 506 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (4/4), done.
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error: 
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error: 
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To xxxxxxxxxxxxxxxxxxx
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'xxxxxxxxxxxxxxxxxxx'
james-macbook:test2 james$ 

Кто-нибудь знает, что это значит?

РЕДАКТИРОВАТЬ: Просто нашел это, думаю, что это то, что мне нужно. http://tiredblogger.wordpress.com/2009/11/09/creating-local-git-repositories-yeah-its-that-simple/

Спасибо

Ответы [ 2 ]

1 голос
/ 04 февраля 2011

Если вы можете смонтировать каталог сервера через NFS или Samba, легко peasy.Я бы сначала создал пустой репозиторий на сервере.Затем клонируйте пустой репозиторий на своей машине и добавьте материал.

После этого все работает как обычно (потяните, нажмите).

0 голосов
/ 04 февраля 2011

Похоже, вы пытаетесь сделать что-то очень похожее на обычный вопрос развертывания веб-сайта, переместившись в git-репозиторий, поэтому информация о том, как это сделать, должна в равной степени относиться к этой ситуации.

http://toroid.org/ams/git-website-howto

На этой веб-странице описывается настройка чистого репозитория (в вашей приведенной выше команде у вас было -bare вместо --bare, что может быть одной из проблем, с которой вы столкнулись) и использование перехвата пост-получения дляобновлять содержимое каталога автоматически.Хук post-receive делает это, вызывая git checkout -f, но с заданным явным рабочим деревом (голые репозитории не имеют рабочих деревьев, поэтому обычно команда не выполняется).

...