Моя намеченная цель:
Я храню некоторые файлы на своем локальном компьютере, а также делюсь ими с другими, размещая их на своем веб-сайте. Раньше я делал это, вручную загружая все файлы с помощью FTP, каждый раз, когда я вносил какие-то изменения и т. Д. Теперь мне интересно, могу ли я использовать Git, чтобы помочь мне в этом (путем «проталкивания» локальных файлов на сервер моего веб-сайта ). Мой сервер размещен на Dreamhost.
Первая попытка:
Сначала я пробую этот учебник. Сначала я помещаю свои локальные файлы в репозиторий Github, а ssh - на сервер Dreamhost, чтобы git clone --bare
из репозитория Github. Но я обнаружил, что git не передает мои файлы. Поэтому я игнорирую учебник.
Вторая попытка:
я ssh
на мой сервер Dreamhost для клонирования прямо из Github. Все мои файлы передаются на сервер. Затем на своем локальном компьютере я git remote add dreamhost ssh://username@mysite.com/~/my-project
. Затем я добавляю файлы, фиксирую и git push dreamhost master
. И появляется куча ошибок:
(источник: geotakucovi.com)
Как новичок в использовании Git, я, должно быть, что-то упустил. Пожалуйста помоги!
Когда вы используете репозиторий Git в качестве центрального репозитория (как вам кажется), у вас обычно не должно быть рабочего каталога в этом репо. Причина этого указана в упомянутой вами ошибке: нажатие на извлеченную ветку может привести к рассинхронизации рабочего дерева.
Если люди, с которыми вы делитесь информацией, могут использовать Git, вы можете вместо этого настроить на сервере пустой репозиторий, а затем нажать на него.
# On the server
git init --bare ~/project.git
# On your computer
git remote add origin ssh://username@example.com/~/project.git
git push origin master
# On everyone else's computer
git remote add origin http://example.com/~david/project.git
git pull origin master
git checkout master
Если они не могут использовать Git, вам понадобится немного более сложный рабочий процесс:
# On the server, once
git init ~/project
git config receive.denyCurrentBranch ignore
# On your computer
git remote add origin ssh://username@example.com/~/project
git push origin master
# On the server after each push
cd ~/project
git reset --hard
После этого шага файлы должны быть доступны в /project
Я не большой пользователь git, но попробуйте следующее: