Git

от ILuxWiki

Направо към: навигация, търсене

Съдържание

Създаване на публично Git хранилище под Ubuntu 8.10

  • пускане на демона, директорията за хранилища е /var/cache/git
git-daemon 
  • преобразуване на локално в публично хранилище
git clone --bare --shared /home/to/already_existing_repo.git new_public_repo.git
  • поставяне в директорията
sudo mv new_public_repo.git /var/cache/git/new_public_repo.git
  • създаване на файл, който прави експорта възможен
sudo touch /var/cache/git/new_public_repo.git/git-daemon-export-ok
  • промяна на групата, която ще има достъп до хранилището
sudo chgrp git /var/cache/git/new_public_repo.git 
  • промяна на правата на групата
sudo chmod -R g+rw /var/cache/git/new_public_repo.git 

Вече всички потребители в група git имат право да правят pull от git://hostname/git/new_public_repo.git За push се иска SSH достъп. Ако желаете потребителите да нямат шел, променете текущите им шелове на /usr/bin/git-shell (шелът трябва да бъде добавен в /etc/shells)

branches

  • Създаване на нов branch testing
 git checkout -b testing
  • Превключване към testing и обратно към master
 git checkout testing
 git checkout master
  • Проверка в кой branch сме в момента
 git branch
  • Сливане на кода от testing с master (трябва сме с текущ branch master)
 git merge testing
  • Връщане на последната промяна, в случай на грешка с горното merge
 git reset --hard HEAD~1
  • Diff на разликите м/у два branch-а
 git diff master testing
  • Изтриване на branch
 git branch -d testing

GIT хранилище на linuxfan.org

  • път: ssh://username@linuxfan.org/git/PROJECTNAME.git

създаване (инициализация) на проект

  • създаваме си проект project
 mkdir project
 cd project
 touch a b
 mkdir c
  • вкарваме проекта в git
 git init
 git add .
 git commit -a -m 'Initial release
  • качване на проекта в linuxfan
 cd ../
 tar zcfv project.tgz project
 scp project.tgz user@linuxfan.org
 ssh user@linuxfan.org
 tar zxfv project.tgz
  • създаване на bare хранилище
 git clone --bare -l project /git/project.git
 chgrp -R git /git/project.git
 chmod -R g+rw /git/project.git
  • изтриване на копието в linuxfan
 cd ~; rm -rf project
  • сваляне на копие от linuxfan
 git clone ssh://user@linuxfan.org/git/project.git


Примери

GitHub workflow

1. Създаване на клонирано хранилище

 Щракнете на бутона “Fork”

2. Създаване на работна папка във вашето PC

 git clone git@github.com:your-user-name/project-name.git

3. Конфигуриране на отдалечните хранилища

 cd project-name
 git remote add upstream git://github.com/original-author/project-name.git
 git fetch upstream

4. качване на промените в клонираното хранилище

 git push origin master

5. обновяване от upstream хранилището

 git fetch upstream
 git merge upstream/master

Оригиналния текст в помощното ръководство на GitHub


клониране на проект (checkout) от public repository

 git clone ssh://linuxfan.org/git/dhcp.git

сваляне на нови промени от public repository

 git pull

качване на промени към public repository

 git push

diff 2 версии назад

 git diff HEAD~2

за една версия:

 git diff HEAD^

което е равносилно на git diff HEAD~1

Git vs Hg commands

http://mercurial.selenic.com/wiki/GitConcepts