Назад | Перейти на главную страницу

«Синхронизация» файлов между локальным и удаленным сервером с помощью Git

Моя намеченная цель:

Я храню некоторые файлы на своем локальном компьютере, а также делюсь ими с другими, размещая их на своем веб-сайте. Раньше я делал это, вручную загружая все файлы с помощью 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, но попробуйте следующее:

  1. Клонируйте как свое локальное репо, так и репо вашего сервера прямо из Github.
  2. Внесите изменения в свое локальное репо.
  3. Зафиксируйте свое местное репо.
  4. Нажмите на Github.
  5. Вытащите из Github на свой сервер.