понедельник, октября 31, 2011

Основы работы с git

Основной и полноценный документ http://githowto.com/

забрать код
git clone git@github.com:companyname/projectname.git

если
Cloning into mambaandroid...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
то
ssh-keygen -t rsa -C "your_email@youremail.com"
cat ~/.ssh/id_rsa.pub
и скопировать его в настройки своего аккаунта на гитхабе

тест коннекта
ssh -T git@github.com

иногда надо добавить идентит
ssh-add ~/.ssh/id_rsa

список бранчей
git branch -a

переключиться в бранч
git checkout version-0.8

если вставить этот код в конец своего .bashrc
PS1="\[\033[38m\]\u@\h\[\033[01;34m\] \w \[\033[31m\]\`ruby -e \"print (%x{git branch 2> /dev/null}.grep(/^\*/).first || '').gsub(/^\* (.+)$/, '(\1) ')\"\`\[\033[35m\]$\[\033[00m\] "

то будет подсвечиваться текущий бранч прямо в консоли

забрать все новое с удаленного репа и попытаться авто-смерджить с текущим состоянием
git pull origin version-0.8

добавить все данные в локальной копии и зафиксировать
git add .
git commit -m 'desc'
или
git commit -a -m 'desc'

пушнуть в удаленный реп
git push origin version-0.8

отменить локальные изменения (svn revert)
сбросить все
git reset --hard HEAD

только определенный файл
git checkout -- hello.rb
git checkout HEAD hello.rb

ревертнуть последний коммит
git revert HEAD

еще примеры здесь

смерджить код из обного бранча в другой
git checkout version-0.9
git pull origin version-0.9
git merge version-0.8
git log
git push origin version-0.9

смерджить код в мастер и навесить таг
git checkout master
git merge version-0.8
git tag -a version-0.8.1-release -m "0.8.1 фикс-версия"
git push --tags origin master

Комментариев нет: