Tahák s příkazy Git
Git sleduje změny souborů jako řadu commitů v repozitáři. Tyto příkazy pokrývají každodenní tok: založení repo, uložení práce, větve, sloučení a sdílení se vzdáleným. Nechte si tahák otevřený při učení.
| Příkaz | Co dělá |
|---|---|
| git init | Create a new, empty Git repository in the current directory. |
| git clone | Download a remote repository and its full history to your machine. |
| git status | Show changed, staged and untracked files in the working tree. |
| git add | Stage changes (files) to be included in the next commit. |
| git commit | Record staged changes as a new commit with a message. |
| git log | Display the commit history of the repository. |
| git diff | Show unstaged or staged differences between states. |
| git branch | List, create or delete branches in the repository. |
| git checkout / switch | Switch branches or restore files (switch is the modern command). |
| git merge | Join another branch's history into the current branch. |
| git rebase | Reapply commits on top of another base commit, rewriting history. |
| git pull | Fetch from a remote and merge the changes into the current branch. |
| git push | Upload local commits to a remote repository. |
| git stash | Temporarily shelve uncommitted changes to reapply later. |
| git remote | Manage the set of remote repositories you track. |
Poznámky
- Většina příkazů přijímá přepínače (jako -m pro zprávu nebo -a pro vše); úplný seznam dá 'git help <příkaz>'.
- Názvy větví jsou levné a zahoditelné — často commitejte ve větvi funkce a pak mergeujte do main.
- Před destruktivními příkazy jako rebase nebo reset se ujistěte, že je práce commitnutá nebo ve stash.
Časté dotazy
- Jaký je rozdíl mezi merge a rebase?
- Merge spojuje historie novým commitem se dvěma rodiči. Rebase přehraje tvé commity na jinou větev, čímž vznikne lineární historie, ale přepíší se ID commitů.
- Jak vrátím commit zpět?
- Použij 'git revert <commit>' pro přidání nového commitu, který změnu vrací (bezpečné, sdílená historie zůstává). 'git reset' přepisuje historii a na sdílených větvích se nepoužívá.
- Jaký je rozdíl mezi git pull a git fetch?
- Fetch stáhne commity a referenční body z remote bez zásahu do pracovního stromu. Pull udělá fetch a následně tyto změny slije nebo rebasuje do tvé aktuální větve.
- Kdy použít git stash?
- Stash dočasně odloží necommitnuté změny, abys mohl čistě přepnout větev nebo stáhnout, a pak je obnovíš příkazem 'git stash pop'.