Задать вопрос

Git. Коммиты на сервер?

Здравствуйте :)

Недавно мне надоело заливать проект по ftp. Это неудобно и долго. И я решил воспользоваться системой контроля версий, а именно git. Заодно и контроль версий не помешает. Работаю над ним я один.


Почитав кучу статей и мануалов, попутно пробуя всё это, я пришёл к выводу, что самому мне это не осилить да ещё и в рабочее время.

Прошу помощи. Расскажите, как всё-таки это сделать?


Я так понимаю самый простой и правильный способ, это коммитить, потом делать пуш на сервер, а потом копировать это дело в рабочий каталог.

Авторизацию по ssh по ключам сделал.

Пробовал всё, что предлагают, но так ничего и не получилось.

Всё что мне нужно, это локальный репозиторий, из которого можно делать пуш на удалённый репозиторий на сервере.

Заранее спасибо.
  • Вопрос задан
  • 6980 просмотров
Подписаться 23 Средний Комментировать
Решения вопроса 1
@mithraen
1. Создать на сервере репозиторий:
$ ssh servername
$ git init-db --bare myreponame

2. Сделать клон репозитория локально:
$ git clone servername:myreponame

3. Сделать так, чтобы по push в серверный репозиторий автоматически синхронизировался рабочий каталог:
$ ssh servername
$ cd myreponame/hooks
$ cat > update
#!/bin/sh -e
refname="$1"
oldrev="$2"
newrev="$3"

gitdir=`pwd`

if [ "$refname" = «refs/heads/master» ]; then
tmpdir=`mktemp -d`
cd "$tmpdir"
git \
--git-dir="$gitdir" \
archive --format=tar "$newrev" | tar x
rsync -a --delete-after "$tmpdir/" /var/www/что-там-надо/
rm -rf "$tmpdir"
fi

exit 0

4. Не забыть сделать этот скрипт исполняемым:
$ chmod +x update

5. Делаем первый коммит: на локальной машине заходим в репозиторий и делаем:
$ touch test
$ git add test
$ git commit -m 'test' test
$ git push

6. Проверяем что у нас получилось в рабочем каталоге, радуемся жизни
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
Fastto
@Fastto
Почитайте — habrahabr.ru/blogs/development/68341/
мне помогло

поставьте tortoiceGIT чуточку упрощает жизнь.

конкретно по вопросу — push на remote это как бы и есть финальный шаг, возможно вы remote не правильно сконфигурили… что именно-то не получается?
Ответ написан
sajgak
@sajgak
Начните лучше с SVN. Он проще в освоении и понимании + заводится с пол пинка. А потом, как попривыкнете, сможете смело перейти на меркуриал или гит
Ответ написан
No_Time
@No_Time
Вот тут все просто и понятно. Или создайте репоиторий на гитхабе, тогда у вас появится страничка что и как делать и в каком порядке.
Ответ написан
int03e
@int03e
А что конкретно непонятно?
Ответ написан
akzhan
@akzhan
Поставить Gitlab + Gitolite, и использовать Capistrano для развёртывания,
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы