====== 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