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

