/* git help */ - remote git remote -v list remotes verbose (with URLs) git remote show [-n] list info for (like remote HEAD, remote branches, tracking mapping) -n show available info without contacting remote (offline mode) - branching git branch [-a] list available branches; -a to include remote branches git branch -vv list branch & annotate with head sha1 & remote tracking branch git branch create branch with name git checkout switch to branch with name git push -u origin push branch to origin (or other remote), and setup as tracking branch - resetting git reset [type] type: --mixed resets index, but not working tree --hard matches the working tree and index to that of the tree being switched to any changes to tracked files in the working tree since are lost git reset HEAD remove file from staging git reset --soft HEAD~1 delete most recent commit but keep work git reset --hard HEAD~1 delete most recent commit and delete work - tags git tag -a -m "descr" creates an annotated tag (full object containing tagger, date, ...) git tag -l list available tags git checkout tag/ checkout specific tag git checkout tag/ -b checkout specific tag in a new branch - diff git diff HEAD: origin/HEAD: diff files for different refs git diff -U$(wc -l ) shows complete file with diffs instead of usual diff snippets - log git log --oneline shows log in single line per commit -> alias for '--pretty=oneline --abbrev-commit' git log --graph text based graph of commit history git log --decorate decorate log with REFs - patching git format-patch / opt: -N use [PATCH] even with multiple patches (default is [PATCH n/m] where n is current commit num and m is total commit num in patch) --start-number start output file generation with as start number instead '1' since spcifier: -3 e.g: create a patch from last three commits create patch with commits starting after git am apply patch and create a commit for it git apply --stat see which files the patch would change git apply --check see if the patch can be applied cleanly git apply apply the patch locally without creating a commit # eg: generate patches for each commit from initial commit on git format-patch -N $(git rev-list --max-parents=0 HEAD) # generate single patch file from a certain commit/ref git format-patch --stdout > my-patch.patch - HEAD last commit HEAD~1 last commit-1 HEAD~N last commit-N (linear backwards when in tree structure, check difference between HEAD^ and HEAD~) git rev-list --max-parents=0 HEAD first commit