Git Push с локального компьютера на сервер работает, но не файлы на сервере - PullRequest
6 голосов
/ 11 декабря 2011

спасибо за любую помощь.

На моем локальном компьютере (Mac OSX Lion) у меня есть git-репозиторий, который я пытаюсь перенести в свой экземпляр ec2 с помощью Ubuntu.

На сервере ec2 я сделал:

cd /u/apps
mkdir stuff.git
cd stuff.git
git init --bare
git update-server-info

На моем локальном компьютере у меня есть папка "stuff", в которой есть только текстовый файл.

cd stuff
git init
git add .
git commit -m "initial commit"
git remote add origin user@111.111.111.111:/u/apps/stuff.git
git push origin master

Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 477 bytes, done.
Total 4 (delta 0), reused 0 (delta 0)
To user@111.111.111.111:/u/apps/stuff.git
95d5ae5..4b5a30f  master -> master

все выглядит нормально, но когда я проверяю сервер, новый текстовый файл с именем 'hello.txt' не был добавлен. Все, что я вижу, это:

/u/apps/stuff.git$ ls
branches  config  description  HEAD  hooks  info  objects  refs

Есть мысли о том, что я мог упустить из виду?

Приветствия

1 Ответ

7 голосов
/ 11 декабря 2011

Да, вы не видите файлы, потому что вы создали голое хранилище (git init --bare), как и должно быть.Голые репозитории не имеют рабочего дерева.

Если вы пытаетесь получить файл по определенному пути, из пустого репозитория на сервере, вы должны установить хук пост-получения и получить его извлечение.Хук пост-приема будет выглядеть примерно так:

GIT_WORK_TREE=/path/where/to/checkout git checkout -f

(вышеприведенное также можно запустить вручную из репозитория на сервере, если хотите).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...