2013-12-21 2 views
1

У меня есть общий сервер (hostgator), который предоставляет мне git-клиент. Я хочу обновить коды на своем ноутбуке и отправить их прямо на мой общий сервер. Моя проблема в том, что git не дает мне сообщения об ошибке, но это ничего не меняет.git remote push не действует

вот что я сделал:

На сервере:

[email protected] [~]# git init --bare mycode.git 
Initialized empty Git repository in /serverhome/serveruser/mycode.git/ 

На локальном компьютере:

[email protected]:~/path/to/local/code$ git init 
Initialized empty Git repository in /home/localuser/path/to/local/code/.git/ 

[email protected]:~/path/to/local/code$ git remote add server [email protected]:/serverhome/serveruser/mycode.git 

[email protected]:~/path/to/local/code$ echo '123456'>test; 

[email protected]:~/path/to/local/code$ git add test 

[email protected]:~/path/to/local/code$ git commit -m 'initial commit' 
[master (root-commit) 5b7ce12] initial commit 
1 file changed, 1 insertion(+) 
create mode 100644 test 

[email protected]:~/path/to/local/code$ git push server master 
Counting objects: 3, done. 
Writing objects: 100% (3/3), 209 bytes, done. 
Total 3 (delta 0), reused 0 (delta 0) 
To [email protected]:/serverhome/serveruser/mycode.git 
* [new branch]  master -> master 

Где я должен увидеть файл test? это нигде! ни в /serverhome/serveruser/ ни в /serverhome/serveruser/mycode.git

Если я нажимаю снова я буду видеть это сообщение:

Everything up-to-date 

Что делать?

ответ

1
[email protected] [~]# git init --bare mycode.git 
Initialized empty Git repository in /serverhome/serveruser/mycode.git/ 

Это голый репозиторий. Вы можете использовать его как удаленный и нажать на него, как и вы, но он не предназначен для работы в нем и просмотра файлов.

Вы можете клонировать из голой хранилища на сервере и использовать этот клон, чтобы увидеть в нем файлы, например:

git clone mycode.git mycode 

Имейте в виду, что после того, как вы толкаете с локального компьютера, вы будете иметь сделать git pull в вашем клоне, чтобы он получил изменения от mycode.git. Голый репо будет общим удаленным как для вашего местного репо, так и для клона.

Если вы хотите автоматически обновлять клон на сервере каждый раз, когда вы его нажимаете, вы можете создать крючок post-receive. Я написал статью об этом on my blog.

+0

Спасибо за важные моменты. Итак, если я хочу избежать, используя оболочку сервера и нажимать прямо с локального пути на сервер, что мне делать? – faravish

+0

Вы хотите настроить «post-receive» так, чтобы при выполнении 'git push' из local скрипт выполнил' git pull' в 'mycode' (не-голый клон' mycode.git'). – janos

+0

У меня проблема. когда в оболочке сервера я набираю 'git clone mycode.git/serverhome/serveruser' Я сталкиваюсь с этой ошибкой:' fatal: destination path '/ serverhome/serveruser' уже существует и не является пустым каталогом. ' Any способ перезаписи элементов в домашней директории пользователя сервера? – faravish

0

файл на самом деле толкнул, но вы ищете его в неправильном направлении, вы можете клонировать папку GIT на сервере, то выписка мастер

+0

Можете ли вы рассказать, что ввести терминал (и какой терминал, терминал сервера или локального компьютера)? – faravish

Смежные вопросы