Работа с Git (2): GitHub

категория: Git
Продолжаем работать с git. Раньше мы создавали репозиторий на локальной машине, но чтобы делиться кодом с другими и работать в команде, необходимо размещать все на удаленном сервере - для этого существует GitHub. Заходим на https://github.com и создаем аккаунт. Чтобы перенести наш локальный проект на сервер GitHub мы должны добавить удаленный репозиторий, вписывать название аккаунта и ссылку на удаленный репозиторий, пускай это будет try_git.git:
git remote add origin git@github.com:acman/try_git.git
Теперь нужно перенести наши локальные изменения на удаленный сервер. По умолчанию наша локальная ветка называется master, параметр -u говорит Git, чтоб он запомнил все параметры, следующий раз придется нажимать только git push:
git push -u origin master
Теперь можно зайти в репозиторий try_git на GitHub и убедиться, что туда переместились все файлы. Проходит некоторое время, вы делаете изменения, ваши сотрудники делают собственные коммиты. Нужно стянуть изменения в репозитории origin ветки master.
git pull origin master
Теперь посмотрим какие изменения произошли:
git diff HEAD
Команда diff еще полезна тем, что ищет изменения в уже проиндексированных файлах (staged, готовых к коммиту). Теперь проиндексируем файл, к примеру, hello.html:
git add hello.html
Проверим файлы, которые мы проиндексировали:
git diff --staged
Можно отменить индексацию командой git reset:
git reset hello.html
Следует заметить, файл hello.html уже не индексируется, но еще остался. Файлы могут быть возвращены в то состояние, в котором они были в момент последнего коммита, с помощью команды: git checkout -- :
git checkout -- hello.html
Когда разработчики исправляют какой-то баг, то часто создают копию ветки. После завершения работы, сливают ее в основную ветку master. Чтобы удалить все посторонние файлы создадим ветку clean_up:
git branch clean_up
Теперь, если ввести git branch, то можно увидеть две локальные ветки: master и clean_up. Есть возможность переключения между ветками с помощью git checkout . Можно создать и перейти на ветку одной командой git checkout -b new_branch. Перейдем на ветку clean_up:
git checkout clean_up
Теперь можно избавиться от ненужного файла hello.html:
git rm 'hello.html'
Все удалено, дальше нужно принять изменения:
git commit -m "Remove hello.html"
К примеру, мы уже закончили фиксить баг, возвращаемся на ветку master и сливаем наши изменения из ветки clean_up:
git checkout master
git merge clean_up
Слияние прошло успешно и нужно избавиться от ветки clean_up - команда git branch -d , она нам больше не понадобится:
git branch -d clean_up
Все, что осталось сделать - это отправить все, над чем мы работали, на удаленный репозиторий:
git push
Информация взята из курса tryGit (http://www.codeschool.com/courses/try-git)


blog comments powered by Disqus