====== GIT ====== Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. **GIT home page:** http://git-scm.com/\\ **GIT gui client:** https://code.google.com/p/tortoisegit/\\ **GIT hosting:** https://github.com/ **Pro Git book:** http://git-scm.com/book/ ([[http://git-scm.com/book/cs/|cs]])\\ **Git reference:** http://gitref.org/ **Další zdroje** * http://www.zdrojak.cz/clanky/jasne-umim-git/ * http://nvie.com/posts/a-successful-git-branching-model/ * http://danielkummer.github.io/git-flow-cheatsheet/ **Gitignore templates:** https://github.com/github/gitignore ===== Git workflow ===== * http://devel.cz/otazka/git-workflow * http://nvie.com/posts/a-successful-git-branching-model/ * https://www.atlassian.com/git/tutorials/comparing-workflows/ * https://www.atlassian.com/software/sourcetree/overview * http://devel.cz/otazka/merge-vs-rebase-workflow * http://devel.cz/otazka/gitflow-feature-refactoring ===== Pro Git book cs mobi ===== **Calibre install** http://calibre-ebook.com/ - e-book converter shell# yum install python.x86_64 xdg-utils.noarch python-imaging.x86_64 python-mechanize.noarch python-lxml.x86_64 python-dateutil.noarch python-cssutils.noarch python-beautifulsoup.noarch python-chm.x86_64 libXdmcp.x86_64 shell# wget -nv -O- https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()" **Rubygem install** shell# yum install ruby.x86_64 rubygems.noarch rubygem-rdiscount.x86_64 **Clone Git repository Pro Git book** shell> git clone git://github.com/progit/progit.git shell> cd progit **E-book convert mobi** shell> ./makeebooks cs shell> ls progit.cs.mobi **E-book convert epub** shell> FORMAT=epub shell> export FORMAT shell> ./makeebooks cs shell> ls progit.cs.epub ===== Git repository hosting ===== * https://bitbucket.org * https://github.com * https://www.assembla.com ===== NetBeans + Git + Bitbucket ===== Integrace NetBeans IDE s Git VCS a služby Bitbucket ([[netbeans|o NetBeans IDE]]). ==== NetBeans ==== Create local Git repository on existing project in NetBeans * click on **NetbeansProjectExample** in NetBeans * **Team** -> **Git** -> **Initialize Repository...** * **Team** -> **Commit...** * create repository in Bitbucket * **Team** -> **Remote** -> **Push...** * **Specify Git Repository Location:** * **Remote Name:** origin **Persist remote:** check * **Repository URL:** https://youraccount@bitbucket.org/youraccount/NetbeansProjectExample.git * **User:** your username * **Password:** your secret password * click on **Next...**, check master, ..., check master, ..., **Finish** ==== Bitbucket ==== * login to Bitbucket * **Repositories** -> **Create repository** -> ... * click on **I have an existing project to push up** * readme ... **Push command line example** $ cd /path/to/my/repo $ git remote add origin https://youraccount@bitbucket.org/youraccount/NetbeansProjectExample.git $ git push -u origin --all # pushes up the repo and its refs for the first time $ git push -u origin --tags # pushes up any tags ==== Git author/committer ==== [user] name = Jiří Blažek email = jiri.blazek@isn.cz ===== Instalace GIT ===== ==== Linux ==== Stáhnout poslední verzi z http://git-scm.com/download shell# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel shell# tar xvzf git-1.8.4.3.tar.gz shell# cd git-1.8.4.3.tar.gz shell# make prefix=/usr/local all shell# make prefix=/usr/local install ==== Windows ==== ... ===== Git BASH ===== ==== Nastavení totožnosti uživatele (globálně) ==== $ git config --global user.name "Jiri Blazek" $ git config --global user.email jiri.blazek@isn.cz ==== Nastavení totožnosti uživatele (lokálně) ==== $ git config user.name "Jiri Blazek" $ git config user.email jiri.blazek@isn.cz ==== Nastavení editoru ==== $ git config --global core.editor vim ==== Nastavení nástroje pro slučování ==== $ git config --global merge.tool vimdiff ==== Kontrola nastavení ==== Pro uživatele v souboru ~/.gitconfig. $ git config --list ==== Inicializace repozitáře v existujícím adresáři ==== $ git init $ git add *.c $ git add README $ git commit -m 'first commit of init existing project' ==== Klonování repozitáře ==== $ git clone git://youraccount@bitbucket.org/youraccount/NetbeansProjectExample.git ==== Kontrola stavu souborů ==== $ git status ==== Zobrazení vzdálených serverů ==== $ git remote $ git remote -v ==== Vyzvednutí a stažení vzdáleného repozitáře ==== $ git fetch [název vzdáleného repozitáře] $ git fetch origin ==== Vyzvednutí a začlenění vzdálené větve do aktuální větve ==== $ git pull [název vzdáleného repozitáře] $ git pull origin ==== Posílání do vzdálených repozitářů ==== $ git push [název vzdáleného repozitáře] [název větve] $ git push origin master ==== Prohlížení vzdálených repozitářů ==== $ git remote show [název vzdáleného repozitáře] $ git remote show origin ==== Úprava/zahrnutí do posledního commitu ==== Změna poslední revize. $ git commit --amend ==== Vytvoření nové větve ==== Vytvoření nové větve devel. $ git branch devel ==== Přehled větví ==== Větev s hvězdičkou je aktivní větev. $ git branch ==== Přepnutí na existující větev ==== Přepnutí na větev devel. $ git checkout devel ==== Slučování větví ==== Sloučení větve devel do větve master. $ git checkout master $ git merge devel ==== Mazání větví ==== Smazání větve devel. $ git branch -d devel ==== Úprava nastavení ==== $ git config --edit --system ==== Grafické prohlížení ==== $ gitk --all