Skip to content

amarduwal/git-tips

Folders and files

NameName
Last commit message
Last commit date

Latest commit

┬а

History

6 Commits
┬а
┬а

Repository files navigation

git-tips

git-tips рдХреЛ рд╕рдВрдЧреНрд░рд╣, рдХреГрдкрдпрд╛ contributing.md рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН, рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реБрдЭрд╛рд╡рд╣рд░реВ рдердкреНрди рдЪрд╛рд╣рд╛рдиреБрд╣реБрдиреНрдЫ рднрдиреЗред

English | ф╕нцЦЗ | ╨а╤Г╤Б╤Б╨║╨╕╨╣ | эХЬъ╡ньЦ┤ | Tiс║┐ng Viс╗Зt | цЧецЬмшкЮ

рдЙрдкрдХрд░рдгрд╣рд░реВ:

  • git-tip - рдпреЛ рдПрдХ CLI рдЙрдкрдХрд░рдг рд╣реЛ рдЬреБрди рддрдкрд╛рдИрдВ рддрд▓ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХрд╛ рд╕реБрдЭрд╛рд╡рд╣рд░реВ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреЗрдЫред (Here in Docker container)

P.S: рдпреА рд╕рдмреИ рдЖрджреЗрд╢рд╣рд░реВ git version 2.7.4 (Apple Git-66) рдорд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдПрдХреЛ рд╣реЛред

рд╣рд░реЗрдХ рджрд┐рди Git рдХрд╛ рдмрд┐рд╕ рдЖрджреЗрд╢рд╣рд░реБ рд╡рд╛ рддреЗрд╕реНрддреИ

git help everyday

Git рд╕рдБрдЧ рдЖрдЙрдиреЗ рдЙрдкрдпреЛрдЧрд┐ рдЧрд╛рдЗрдб рджреЗрдЦрд╛рдЙрдБрдЫ

git help -g

рд╕рд╛рдорд╛рдЧреНрд░рд┐рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд┐ рдкрд░рд┐рд╡рд░реНрддрди

git log -S'<a term in the source>'

рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдордпрдХреЛ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рджреЗрдЦрд╛рдЙрди

git log -p <file_name>

рдзрдХреНрдХрд╛ рдкрдЫрд┐, рдЗрддрд┐рд╣рд╛рд╕рдмрд╛рдЯ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдЙрдиреЗ

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <path-to-your-file>' --prune-empty --tag-name-filter cat -- --all && git push origin --force --all

рд░рд┐рдореЛрдЯрд╕рдБрдЧ рд╕рд┐рдЩреНрдХ рдЧрд░реНрдиреЗ, рд╕реНрдерд╛рдиреАрдп рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЕрдзрд┐рд▓реЗрдЦрди рдЧрд░реНрдиреЗ

git fetch origin && git reset --hard origin/master && git clean -f -d

рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕рдореНрдо рд╕рдмреИ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕реВрдЪреА

git ls-tree --name-only -r <commit-ish>

рдкрд╣рд┐рд▓реЛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд░рджреНрдж рдЧрд░реНрдиреЗ

git update-ref -d HEAD

рд░реАрд╕реЗрдЯ: рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рдиреАрдп рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрди

git reset --keep <commit>

рд╕рдмреИ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдлрд╛рдЗрд▓рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ

git diff --name-only --diff-filter=U

рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХрд╛ рд╕рдореНрдкреВрд░реНрдг рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕реВрдЪреА

git diff-tree --no-commit-id --name-only -r <commit-ish>

рдЕрд╕реНрдерд╛рдпреА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЕрдиреНрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдХреЛ рдкрдЫрд┐рдмрд╛рдЯ

git diff

рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░реА рдЧрд░рд┐рдпреЗрдХреЛ

git diff --cached

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git diff --staged

рд╕реБрдЪрд╛рд░реБ рд░ рдЕрдкрд░рд┐рдЪрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рджреБрд╡реИ рд╣реЗрд░реНрди

git diff HEAD

рдкрд╣рд┐рд▓реЗ рдиреИ рдорд╛рд╕реНрдЯрд░рдорд╛ рдорд░реНрдЬ рдЧрд░рд┐рдПрдХ рд╕рдмреИ рд╢рд╛рдЦрд╛рд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди

git branch --merged master

рдЪрд╛рдБрдбреЛ рдЕрдШрд┐рд▓реНрд▓реЛ рд╢рд╛рдЦрд╛рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди

git checkout -

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git checkout @{-1}

рдкрд╣рд┐рд▓реЗ рдиреИ рдорд╛рд╕реНрдЯрд░рд╕рдБрдЧ рдорд░реНрдЬ рдЧрд░рд┐рдПрдХреЛ рд╢рд╛рдЦрд╛рд╣рд░реВ рд╣рдЯрд╛рдЙрди

git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git branch --merged master | grep -v '^\*\|  master' | xargs -n 1 git branch -d # will not delete master if master is not checked out

рд╕рдмреИ рд╢рд╛рдЦрд╛рд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдорд╛рдерд┐рд▓реНрд▓реЛ рд╕реВрдЪреАрд╣рд░реВ, рд╕рд╛рдереИ рд╢рд╛рдЦрд╛рдорд╛ рдЕрдиреНрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди

git branch -vv

рджреВрд░рд╕реНрде рд╢рд╛рдЦрд╛ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди

git branch -u origin/mybranch

рд╕реНрдерд╛рдиреАрдп рд╢рд╛рдЦрд╛ рдореЗрдЯрд╛рдЙрди

git branch -d <local_branchname>

рд░рд┐рдореЛрдЯрдХреЛ рд╢рд╛рдЦрд╛ рдореЗрдЯрд╛рдЙрди

git push origin --delete <remote_branchname>

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git push origin :<remote_branchname>
git branch -dr <remote/branch>

рд╕реНрдерд╛рдиреАрдп рдЯреНрдпрд╛рдЧ рдореЗрдЯрд╛рдЙрди

git tag -d <tag-name>

рд░рд┐рдореЛрдЯ рдЯреНрдпрд╛рдЧ рд╣рдЯрд╛рдЙрди

git push origin :refs/tags/<tag-name>

рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╛рдЗрд▓рд╣рд░реВ HEAD рдорд╛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдЧрд░реНрди

git checkout -- <file_name>

рдЙрд▓реНрдЯрд╛рдЙрдиреБ: рд╡рд┐рдкрд░реАрдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдЧрд░реЗрд░ рдореВрд▓ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд░рджреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реН

git revert <commit-ish>

рд░рд┐рд╕реЗрдЯ: рд░рджреНрдж рдЧрд░реНрди, рдирд┐рдЬреА рд╢рд╛рдЦрд╛ рд▓рд╛рдИ рд╕рд▓реНрд▓рд╛рд╣ рджрд┐рди

git reset <commit-ish>

рдЕрдШрд┐рд▓реНрд▓реЛ рдкреНрд░рддрд┐рдмрджреНрдз рдЯрд┐рдкреНрдкрдгреА рд░рд┐рд╡рд░реНрдб рдЧрд░реНрди

git commit -v --amend

рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдЗрддрд┐рд╣рд╛рд╕ рд╣реЗрд░реНрди

git cherry -v master

рд▓реЗрдЦрдХ рд╕рдВрд╢реЛрдзрди рдЧрд░реНрдиред

git commit --amend --author='Author Name <[email protected]>'

рдЧреНрд▓реЛрдмрд▓ рдХрдиреНрдлрд┐рдЧрд░рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рд╕рдХреЗ рдкрдЫрд┐ рд▓реЗрдЦрдХ рд░рд┐рд╕реЗрдЯ рдЧрд░реНрдиред

git commit --amend --reset-author --no-edit

рд░рд┐рдореЛрдЯрдХреЛ URL рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди

git remote set-url origin <URL>

рд╕рдмреИ рд░рд┐рдореЛрдЯ рд╕рдиреНрджрд░реНрднрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди

git remote

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git remote show

рд╕рдмреИ рд╕реНрдерд╛рдиреАрдп рд░ рд░рд┐рдореЛрдЯ рд╢рд╛рдЦрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди

git branch -a

рд░рд┐рдореЛрдЯрдХрд╛ рд╢рд╛рдЦрд╛рд╣рд░реВ рдорд╛рддреНрд░ рдкрд╛рдЙрди

git branch -r

рд╕рдореНрдкреВрд░реНрдг рдлрд╛рдЗрд▓рдХреЛ рд╕рдЯреНрдЯрд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдлрд╛рдЗрд▓рдХреЛ рд╕реНрдЯреЗрдЬ рднрд╛рдЧрд╣рд░реВ рдорд╛рддреНрд░

git add -p

Git рдмрд╛рд╢ рдкреВрд░реНрдг рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди

curl -L http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc

рджреБрдИ рд╣рдкреНрддрд╛ рднрд┐рддреНрд░ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рднрдпреЛ?

git log --no-merges --raw --since='2 weeks ago'

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git whatchanged --since='2 weeks ago'

рдорд╛рд▓рд┐рдХрдмрд╛рдЯ fork рдкрдЫрд┐ рдЧрд░рд┐рдпреЗрдХрд╛ рд╕рдмреИ рдкреНрд░рддрд┐рдмрджреНрдзрд╣рд░реБ

git log --no-merges --stat --reverse master..

cherry-pick рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╢рд╛рдЦрд╛рдорд╛ рдкреНрд░рддрд┐рдмрджреНрдз рдЫрд╛рдиреНрди

git checkout <branch-name> && git cherry-pick <commit-ish>

рдкреНрд░рддрд┐рдмрджреНрдз-hash рд╕рдорд╛рд╡реЗрд╢ рднрдпреЗрдХрд╛ рд╢рд╛рдЦрд╛рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди

git branch -a --contains <commit-ish>

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git branch --contains <commit-ish>

Git рдЙрдкрдирд╛рдорд╣рд░реБ

git config --global alias.<handle> <command> 
git config --global alias.st status

рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдмрджреНрдз рдЧрд░рд┐ рд╣рд╛рд▓реИрдХреЛ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдИрд▓рд╣рд░реВ рдмрдЪрдд рдЧрд░реНрди

git stash

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git stash save

рдЕрд╕реНрдерд┐рд░ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдЯреНрд░рдпрд╛рдХ рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдмрдЪрдд рдЧрд░реНрди

git stash -k

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git stash --keep-index
git stash save --keep-index

рдЕрд╡рддрд░рдг рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд╣рд┐рдд рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдмрдЪрдд рдЧрд░реНрди

git stash -u

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git stash save -u
git stash save --include-untracked

рд╕рдиреНрджреЗрд╢рдХреЛ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдмрдЪрдд рдЧрд░реНрджреИ

git stash save <message>

рд╕рдмреИ рдлрд╛рдИрд▓рд╣рд░реВрдХреЛ рд╣рд╛рд▓рдХреЛ рд╕реНрдерд┐рддрд┐ рдмрдЪрдд рдЧрд░реНрди (рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдпрдХреЛ, рдирдЪрд╛рд╣рд┐рдиреЗ, рд░ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░рд┐рдПрдХреЛ)

git stash -a

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git stash --all
git stash save --all

рдмрдЪрдд рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ stash рд╣рд░реВрдХреЛ рд╕реВрдЪреА

git stash list

Stashed рд╕реВрдЪреАрдмрд╛рдЯ рдирд╣рдЯрд╛рдИ stash рд▓рд╛рдЧреВ рдЧрд░реНрди

git stash apply <stash@{n}>

рдЕрдиреНрддрд┐рдо stashed рд╕реНрдерд┐рддрд┐ рд▓рд╛рдЧреБ рдЧрд░рд┐ stashed рд╕реВрдЪреАрдмрд╛рдЯ рд╣рддрд╛рдЙрдиреЗ

git stash pop

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git stash apply stash@{0} && git stash drop stash@{0}

рд╕рдмреИ рд╕рдВрдЧреНрд░рд╣рд┐рдд stash рд╣рд░реВ рд╣рдЯрд╛рдЙрдиреЗ

git stash clear

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git stash drop <stash@{n}>

stash рдмрд╛рдЯ рдПрдХрд▓ рдлрд╛рдЗрд▓ рд▓рд┐рди

git checkout <stash@{n}> -- <file_path>

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git checkout stash@{0} -- <file_path>

рдЯреНрд░рдпрд╛рдХ рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реЗрд░реНрди

git ls-files -t

рдЯреНрд░рдпрд╛рдХ рдирдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реЗрд░реНрди

git ls-files --others

рдЙрдкреЗрдХреНрд╖рд┐рдд рд╕рдмреИ рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реЗрд░реНрди

git ls-files --others -i --exclude-standard

рднрдгреНрдбрд╛рд░рдгрдмрд╛рдЯ рдирдпрд╛рдБ рдХрд╛рдо рдЧрд░реНрдиреЗ рд░реВрдЦ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди (git 2.5)

git worktree add -b <branch-name> <path> <start-point>

HEAD рд╕реНрдерд┐рддрд┐рдмрд╛рдЯ рдирдпрд╛рдБ рдХрд╛рдо рдЧрд░реНрдиреЗ рд░реВрдЦ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди

git worktree add --detach <path> HEAD

рдмрд┐рдирд╛ рд╣рддрд╛рдИ рдЕрдирдЯреНрд░реНрдпрд╛рдХ рдлрд╛рдЗрд▓рд╣рд░реВ

git rm --cached <file_path>

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git rm --cached -r <directory_path>

рдЕрдЬреНрдЮрд╛рдд рдлрд╛рдИрд▓рд╣рд░реВ / рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдореЗрдЯрд╛рдЙрдиреБ рдЕрдШрд┐, dry run рдЧрд░реА рдпреА рдлрд╛рдИрд▓рд╣рд░реВ / рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН

git clean -n

рджреГрдврддрд╛рдкреВрд░реНрд╡рдХ рдЕрдЬреНрдЮрд╛рдд рдлрд╛рдЗрд▓рд╣рд░реВ рд╣рдЯрд╛рдЙрди

git clean -f

рджреГрдврддрд╛рдкреВрд░реНрд╡рдХ рдЕрдЬреНрдЮрд╛рдд рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╣рдЯрд╛рдЙрди

git clean -f -d

рд╕рдмреИ рд╕рдмрдореЛрдбреНрдпреВрд▓ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди

git submodule foreach git pull

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git submodule update --init --recursive
git submodule update --remote

рд╣рд╛рд▓рдХреЛ рд╢рд╛рдЦрд╛рдорд╛ рд╕рдмреИ рдкреНрд░рддрд┐рдмрджреНрдзрд╣рд░реБ рджреЗрдЦрд╛рдЙрдБрди рдЬреБрди рдЕрдЭреИ рдорд╛рд╕реНрдЯрд░рдорд╛ рдорд░реНрдЬ рдЧрд░реНрди рдмрд╛рдХрд┐ рдЫ

git cherry -v master

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git cherry -v master <branch-to-be-merged>

рд╢рд╛рдЦрд╛ рдкреБрди: рдирд╛рдорд╛рдХрд░рдг рдЧрд░реНрди

git branch -m <new-branch-name>

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git branch -m [<old-branch-name>] <new-branch-name>

'feature' 'master' рдорд╛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд░ рдорд╛рд╕реНрдЯрд░ рдорд╛ рд╡рд┐рд▓рдп рдЧрд░реНрди

git rebase master feature && git checkout master && git merge -

Master рд╢рд╛рдЦрд╛ рд╕рдВрдЧреНрд░рд╣ рдЧрд░реНрди

git archive master --format=zip --output=master.zip

рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдиреНрджреЗрд╢ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдирдЧрд░реА рдкрдЫрд┐рд▓реНрд▓реЛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрди

git add --all && git commit --amend --no-edit

рд░рд┐рдореЛрдЯрдорд╛ рдореЗрдЯрд╛рдЗрдПрдХреЛ рд░рд┐рдореЛрдЯ рд╢рд╛рдЦрд╛рд╣рд░реВрдорд╛ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╕рдиреНрджрд░реНрднрд╣рд░реВред

git fetch -p

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git remote prune origin

рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдВрд╢реЛрдзрдирдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз hash рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиред

 git rev-list --reverse HEAD | head -1

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git rev-list --max-parents=0 HEAD
git log --pretty=oneline | tail -1 | cut -c 1-40
git log --pretty=oneline --reverse | head -1 | cut -c 1-40

рд╕рдВрд╕реНрдХрд░рдгрдХреЛ рд░реБрдЦ рдХрд▓реНрдкрдирд╛ рдЧрд░реНрдиред

git log --pretty=oneline --graph --decorate --all

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

gitk --all
git log --graph --pretty=format:'%C(auto) %h | %s | %an | %ar%d'

reflogs рдмрд╛рдЯ рдХреЗрд╡рд▓ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдЧрд░рд┐рдПрдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд рд╕рд╣рд┐рдд рдкреЗрдЯреАрдХреЛ рднрд┐рдЬреБрдЕрд▓ рдмрдирд╛рдЙрди

git log --graph --decorate --oneline $(git rev-list --walk-reflogs --all)

Gh-pages рдорд╛ git рдЯреНрд░рдпрд╛рдХ рдЧрд░рд┐рдПрдХреЛ рд╕рдмрдлреЛрд▓реНрдбрд░рдХреЛ рддреИрдирд╛рдд рдЧрд░реНрди

git subtree push --prefix subfolder_name origin gh-pages

рд╕рдмрдЯреНрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реА рднрдгреНрдбрд╛рд░рдорд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдердкреНрди

git subtree add --prefix=<directory_name>/<project_name> --squash [email protected]:<username>/<project_name>.git master

рд╕рдмрдЯреНрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд▓рд┐рдЩреНрдХ рдЧрд░рд┐рдПрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдЗрдБрдХреЛ рднрдгреНрдбрд╛рд░рдорд╛ рдирдпрд╛рдБ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди

git subtree pull --prefix=<directory_name>/<project_name> --squash [email protected]:<username>/<project_name>.git master

рдлрд╛рдЗрд▓рдорд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╕рд╣рд┐рдд рд╢рд╛рдЦрд╛ рдирд┐рд░реНрдпрд╛рдд рдЧрд░реНрдиред

git bundle create <file> <branch-name>

рдмрдиреНрдбрд▓рдмрд╛рдЯ рдЖрдпрд╛рдд рдЧрд░реНрди

git clone repo.bundle <repo-dir> -b <branch-name>

рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛рдХреЛ рдирд╛рдо рдкрд╛рдЙрдиред

git rev-parse --abbrev-ref HEAD

рдлрд╛рдЗрд▓ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдЙрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрди (рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рд╡рд░реНрддрди)ред

git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog

рдкреБрдирд░реБрддреНрдерд╛рди рдЧрд░реНрдиреБ рдЕрдШрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди

git rebase --autostash

рдЖрдИрдбреАрджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдиреАрдп рд╢рд╛рдЦрд╛рдорд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд▓реНрдпрд╛рдЙрди

git fetch origin pull/<id>/head:<branch-name>

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git pull origin pull/<id>/head:<branch-name>

рд╡рд░реНрддрдорд╛рди рд╢рд╛рдЦрд╛рдорд╛ рд╣рд╛рд▓реИрдХреЛ рдЯреНрдпрд╛рдЧ рджреЗрдЦрд╛рдЙрдиред

git describe --tags --abbrev=0

рдЗрдирд▓рд╛рдЗрди рд╢рдмреНрдж рдлрд░рдХ рджреЗрдЦрд╛рдЙрдиред

git diff --word-diff

рд╕рд╛рдорд╛рдиреНрдп рднрд┐рдиреНрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рджреЗрдЦрд╛рдЙрдиред

git difftool [-t <tool>] <commit1> <commit2> <path>

рдЯреНрд░рдпрд╛рдХ рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдирдЧрд░реНрдиред

git update-index --assume-unchanged <file_name>

рдорд╛рди рдЕрдирдбреВ рдЧрд░реНрди - рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рддред

git update-index --no-assume-unchanged <file_name>

.gitignore рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдореЗрдЯрд╛рдЙрдиред

git clean -X -f

рдореЗрдЯрд╛рдЗрдПрдХреЛ рдлрд╛рдИрд▓ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдЧрд░реНрдиред

git checkout <deleting_commit>^ -- <file_path>

рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛-hash рдорд╛ рдлрд╛рдЗрд▓ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдЧрд░реНрди

git checkout <commit-ish> -- <file_path>

рддрд╛рдиреНрдж рдорд░реНрдЬрдХреЛ рд╕рдЯреНрдЯрд╛рдорд╛ рд╕рдБрдзреИ рдмрд┐рд░рд╛рдо рдЧрд░реНрдиред

git config --global pull.rebase true

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

#git < 1.7.9
git config --global branch.autosetuprebase always

рд╕рдмреИ рдЙрдкрдирд╛рдорд╣рд░реВ рд░ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрдиред

git config --list

Git рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдмрдирд╛рдЙрдиред

git config --global core.ignorecase false

рдЕрдиреБрдХреВрд▓рди рд╕рдореНрдкрд╛рджрдХрд╣рд░реВ рдердкреНрдиред

git config --global core.editor '$EDITOR'

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЯрд╛рдЗрдкреЛрдЧреНрд░рд╛рдл рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╕рдЪреНрдпрд╛рдЙрдиред

git config --global help.autocorrect 1

рдкрд░рд┐рд╡рд░реНрддрди рд░рд┐рд▓реАрдЬрдХреЛ рдЕрдВрд╢ рдерд┐рдпреЛрдХрд┐ рднрдиреЗрд░ рдЬрд╛рдБрдЪреНрдиред

git name-rev --name-only <SHA-1>

dry-runред (рдХреБрдиреИ рдЖрджреЗрд╢ рдЬреБрди dry-run рдлреНрд▓реНрдпрд╛рдЧрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред)

git clean -fd --dry-run

рдЕрдШрд┐рд▓реНрд▓реЛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдХреЛ рд╕реБрдзрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЙрдиред

git commit --fixup <SHA-1>

рд╕реНрдХреНрд╡рд╛рд╢ рдлрд┐рдХреНрд╕рдЕрдк рдкреНрд░рддрд┐рдмрджреНрдзрд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдо рдЧрд░реНрдЫред

git rebase -i --autosquash

рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдХреЛ рд╕рдордпрдорд╛ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдХреНрд╖реЗрддреНрд░ рдЫреЛрдбреНрдиред

git commit --only <file_path>

рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╕реНрдЯреЗрдЬрд┐рдВрдЧред

git add -i

рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕реБрдЪрд┐ред

git check-ignore *

рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕реНрдерд┐рддрд┐ред

git status --ignored

рд╢рд╛рдЦрд╛ рез рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдЬреБрди рд╢рд╛рдЦрд╛ реи рдорд╛ рдЫреИрди

git log Branch1 ^Branch2

рдЕрдиреНрддрд┐рдо n рдкреНрд░рддрд┐рдмрджреНрдзрд╣рд░реВрдХреЛ рд╕реБрдЪрд┐

git log -<n>

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git log -n <n>

рд░реЗрдХрд░реНрдб рд░рд┐рдЬреЛрд▓реНрдпреБрд╕рди рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рд░реЗрдХрд░реНрдб рдЧрд░реНрди рд░ рдЕрдШрд┐рд▓реНрд▓реЛ рджреНрд╡рдиреНрджреНрд╡ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиред

git config --global rerere.enabled 1

рд╕рдореНрдкрд╛рджрдХрдорд╛ рд╕рдмреИ рд╡рд┐рдЪреНрдЫреЗрдж рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдЦреЛрд▓реНрдиред

git diff --name-only | uniq | xargs $EDITOR

рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдбрд┐рд╕реНрдХ рдЦрдкрдд рдЧрдгрдирд╛ рдЧрд░реНрдиред

git count-objects --human-readable

рд╕рдмреИ рдЕрдкрд░рд┐рдЪрд┐рдд рд╡рд╕реНрддреБрд╣рд░реВ рдбреЗрдЯрд╛рдмреЗрд╕рдмрд╛рдЯ рдкреНрд░реНрдпреВрди рдЧрд░реНрдиред

git gc --prune=now --aggressive

рддрдкрд╛рдИрдХреЛ рдХрд╛рдордХреЛ рднрдгреНрдбрд╛рд░ рддреБрд░реБрдиреНрддреИ gitweb рдорд╛ рдмреНрд░рд╛рдЙрдЬ рдЧрд░реНрдиред

git instaweb [--local] [--httpd=<httpd>] [--port=<port>] [--browser=<browser>]

GPG рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рдкреНрд░рддрд┐рдмрджреНрдз рд▓рдЧрдорд╛ рд╣реЗрд░реНрди

git log --show-signature

рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣рдЯрд╛рдЙрдиред

git config --global --unset <entry-name>

рдХреБрдиреИ рдкрдирд┐ рдЗрддрд┐рд╣рд╛рд╕ рдмрд┐рдирд╛ рдирдпрд╛рдБ рд╢рд╛рдЦрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрди

git checkout --orphan <branch_name>

рдЕрд░реНрдХреЛ рд╢рд╛рдЦрд╛рдмрд╛рдЯ рдлрд╛рдИрд▓ рдирд┐рдХрд╛рд▓реНрдиред

git show <branch_name>:<file_name>

рдЬрдб рд░ рдорд░реНрдЬрдХреЛ рдкреНрд░рддрд┐рдмрджреНрдзрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдорд╛рддреНрд░ред

git log --first-parent

рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЫреВрдЯрдХреЛ рд╕рд╛рде рдЕрдШрд┐рд▓реНрд▓реЛ рджреБрдЗрд╡рдЯрд╛ рдЕрд▓реНрдкрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиред

git rebase --interactive HEAD~2

рд╕рдмреИ рд╢рд╛рдЦрд╛ рд╕реВрдЪреА WIP рд╣реЛ

git checkout master && git branch --no-merged

рдмрд╛рдЗрдирд░реА рдЦреЛрдЬрдХреЛ рд╕рд╛рде рджреЛрд╖реА рдлреЗрд▓рд╛ рдкрд╛рд░реНрди

git bisect start                    # Search start 
git bisect bad                      # Set point to bad commit 
git bisect good v2.6.13-rc2         # Set point to good commit|tag 
git bisect bad                      # Say current state is bad 
git bisect good                     # Say current state is good 
git bisect reset                    # Finish search 

рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд░ рдкреНрд░рддрд┐рдмрджреНрдз-рд╕рдиреНрджреЗрд╢ рдЧрд┐рддрд╣реБрдХрд╣рд░реВ рдмрд╛рдИрдкрд╛рд╕ рдЧрд░реНрди

git commit --no-verify

рдкреНрд░рддрд┐рдмрджреНрдз рд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдЗрд▓рдорд╛ рднрдпреЗрдХреЛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рд╕реВрдЪреА (рдкреБрди: рдирд╛рдорд╛рдХрд░рдг рдЧрд░реА рдкрдирд┐)

git log --follow -p -- <file_path>

рдПрдХрд▓ рд╢рд╛рдЦрд╛ рдХреНрд▓реЛрди рдЧрд░реНрди

git clone -b <branch-name> --single-branch https://github.com/user/repo.git

рдирдпрд╛рдБ рд╢рд╛рдЦрд╛ рдмрдирд╛рдИ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди

git checkout -b <branch-name>

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git branch <branch-name> && git checkout <branch-name>

рдлрд╛рдИрд▓ рдореЛрдбрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдорд╛ рдЙрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрди

git config core.fileMode false

Git рдХреЛ рд░рдВрдЧреАрди рдЯрд░реНрдорд┐рдирд▓ рдЖрдЙрдЯрдкреБрдЯ рдмрдиреНрдж рдЧрд░реНрди

git config --global color.ui false

рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдВрдЧ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ

git config --global <specific command e.g branch, diff> <true, false or always>

рднрд░реНрдЦрд░реИ рдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рддрд┐рдмрджреНрдзрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рд╕рдмреИ рд╕реНрдерд╛рдиреАрдп рд╢рд╛рдЦрд╛рд╣рд░реВ рджреЗрдЦрд╛рдЙрди

git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/

рдкрдЩреНрдХреНрддрд┐рдмрджреНрдз рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдврд╛рдБрдЪрд╛ (regex рд╡рд╛ string) рд╕рдБрдЧ рдорд┐рд▓реНрдиреЗ рд▓рд╛рдЗрдирд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди

git grep --heading --line-number 'foo bar'

рднрдгреНрдбрд╛рд░рдХреЛ рдПрдХ рдЙрдЫрд╛рд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреНрд▓реЛрди рдЧрд░реНрди

git clone https://github.com/user/repo.git --depth 1

рджрд┐рдЗрдПрдХреЛ рдкрд╛рдардХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рд╢рд╛рдЦрд╛рд╣рд░реВрдорд╛ рдХрдорд┐рдЯ рд▓рдЧ рдЦреЛрдЬреНрди

git log --all --grep='<given-text>'

рд╢рд╛рдЦрд╛рдорд╛ рдкрд╣рд┐рд▓реЛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдкрд╛рдЙрди (рдорд╛рд╕реНрдЯрд░рдмрд╛рдЯ)

git log --oneline master..<branch-name> | tail -1

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git log --reverse master..<branch-name> | head -6

рд╕реНрдЯреЗрдЬ рдЧрд░рд┐рдПрдХреЛ рдлрд╛рдЗрд▓ рдЕрдирд╕реНрдЯреЗрдЬрд┐рдЩ рдЧрд░реНрди

git reset HEAD <file-name>

рджреВрд░рд╕реНрде рднрдгреНрдбрд╛рд░рдгрдорд╛ рдмрд▓рд▓реЗ рдзрдХреЗрд▓реНрди

git push -f <remote-name> <branch-name>

рд░рд┐рдореЛрдЯ рдирд╛рдо рдердкреНрдиреЗ

git remote add <remote-nickname> <remote-url>

рд╣рд╛рд▓реИ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рд╕рдмреИ рд░рд┐рдореЛрддрд╣рд░реБрдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди

git remote -v

рджрд┐рдЗрдПрдХреЛ рдлрд╛рдЗрд▓рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдЦрд╛рдорд╛ рд▓реЗрдЦрдХ, рд╕рдордп рд░ рдЕрдиреНрддрд┐рдо рд╕рдВрд╢реЛрдзрди рджреЗрдЦрд╛рдЙрди

git blame <file-name>

рд▓реЗрдЦрдХ рд░ рд╢реАрд░реНрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдЧрд░рд┐рдпреЗрдХреЛ рд╕рдореВрд╣ рдкреНрд░рддрд┐рдмрджреНрдз

git shortlog

рдЬрдмрд░рдЬрд╕реНрддреА рдзрдХреНрдХрд╛ рдЧрд░реЗ рдкрдирд┐ рддрдкрд╛рдЗрдБрд▓реЗ рдЕрд░реВрдХреЛ рдХрд╛рдо рдЕрдзрд┐рд▓реЗрдЦрди рдирдЧрд░реНрди

git push --force-with-lease <remote-name> <branch-name>

рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рджреНрд╡рд╛рд░рд╛ рдпреЛрдЧрджрд╛рди рдЧрд░рд┐рдПрдХрд╛ рд░реЗрдЦрд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди

git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | gawk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s removed lines: %s total lines: %s
", add, subs, loc }' -

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git log --author='_Your_Name_Here_' --pretty=tformat: --numstat | awk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s, removed lines: %s, total lines: %s
", add, subs, loc }' - # on Mac OSX

рдЙрд▓реНрдЯрд╛рдЙрди: рд╕рдореНрдкреВрд░реНрдг рдорд░реНрдЬ рдлрд░реНрдХрд╛рдЙрди

git revert -m 1 <commit-ish>

рд╢рд╛рдЦрд╛рдорд╛ рдкреНрд░рддрд┐рдмрджреНрдзрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛

git rev-list --count <branch-name>

рдЙрдкрдирд╛рдо: git рдЕрдиреНрдбреЛ рдЧрд░реНрди

git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'

рд╡рд╕реНрддреБ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ рдердкреНрди

git notes add -m 'Note on the previous commit....'

рд╕рдмреИ git-рдиреЛрдЯрд╣рд░реВ рджреЗрдЦрд╛рдЙрди

git log --show-notes='*'

рдЕрд░реНрдХреЛ рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди

git --git-dir=<source-dir>/.git format-patch -k -1 --stdout <SHA1> | git am -3 -k

рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рдореЛрдЯ рд╢рд╛рдЦрд╛рдХреЛ рд╕рдиреНрджрд░реНрдн

git fetch origin master:refs/remotes/origin/mymaster

рджреБрдИ рд╢рд╛рдЦрд╛рд╣рд░реВрдХреЛ рдпрдЙрддреИ рдкреВрд░реНрд╡рдХ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди

git merge-base <branch-name> <other-branch-name>

рдЕрдЬреНрдЮрд╛рдд git рдкреНрд░рддрд┐рдмрджреНрдзрд╣рд░реБрдХреЛ рд╕реВрдЪреА

git log --branches --not --remotes

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git log @{u}..
git cherry -v

рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рдердкреНрди, рддрд░ рд╕реЗрддреЛ рдЦрд╛рд▓реА рдард╛рдБрдЙ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗ

git diff --ignore-all-space | git apply --cached

рд╕реНрдерд╛рдиреАрдп / рдЧреНрд▓реЛрдмрд▓ git рдХрдиреНрдлрд┐рдЧрд░ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди

git config [--global] --edit

рдХреЗрд╣рд┐ рджрд╛рдпрд░рд╛рдорд╛ рджреЛрд╖ рджрд┐рди

git blame -L <start>,<end>

Git рддрд╛рд░реНрдХрд┐рдХ рдЪрд░ рджреЗрдЦрд╛рдЙрдиред

git var -l | <variable>

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрдпрд╛рдЪ рдлрд╛рдЗрд▓ред

git format-patch -M upstream..topic

рднрдгреНрдбрд╛рд░рдХреЛ рдирд╛рдо рдкрд╛рдЙрдиред

git rev-parse --show-toplevel

рдорд┐рддрд┐рдХреЛ рджрд╛рдпрд░рд╛ рдмреАрдЪрдХрд╛ рд▓рдЧрд╣рд░реВ

git log --since='FEB 1 2017' --until='FEB 14 2017'

рд▓рдЧрд╣рд░реВрдмрд╛рдЯ рд▓реЗрдЦрдХ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрди

git log --perl-regexp --author='^((?!excluded-author-regex).*)

рдкреЗрдиреНрдбрд┐рдЩ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рд╕рд╛рд░рд╛рдВрд╢ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди

git request-pull v1.0 https://git.ko.xz/project master:for-linus

рд░рд┐рдореЛрдЯ рднрдгреНрдбрд╛рд░рдорд╛ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди

git ls-remote git://git.kernel.org/pub/scm/git/git.git

рдЕрдирдЯреНрд░реНрдпрд╛рдХ рдлрд╛рдЗрд▓рд╣рд░реВ рдЬрдЧреЗрдбрд╛ рдЧрд░реНрдиред

git ls-files --others -i --exclude-standard | xargs zip untracked.zip

рд╕рдмреИ git рдЙрдкрдирд╛рдорд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди

git config -l | grep alias | sed 's/^alias\.//g'

рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ:

git config -l | grep alias | cut -d '.' -f 2

Git рд╕реНрдерд┐рддрд┐ рдЫреЛрдЯрдХрд░рд┐рдорд╛ рд╣реЗрд░реНрди

git status --short --branch

рдПрдХ рджрд┐рди рдкрд╣рд┐рд▓реЗ рдЧрд░рд┐рдпреЗрдХреЛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрди

git checkout master@{yesterday}

рд░рд┐рдореЛрдЯрдХреЛ рднрдгреНрдбрд╛рд░ рд░ рдЯреНрд░рдпрд╛рдХрдорд╛ рдирдпрд╛рдБ рд╕реНрдерд╛рдиреАрдп рд╢рд╛рдЦрд╛рд▓рд╛рдИ рдкреБрд╢ рдЧрд░реНрди

git push -u origin <branch_name>

рд╢рд╛рдЦрд╛ рдЖрдзрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди

git rebase --onto <new_base> <old_base>

рд░рд┐рдореЛрдЯрдХреЛ рд▓рд╛рдЧрд┐ HTTP рдХреЛ рд╕рдЯреНрдЯрд╛ SSH рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди

git config --global url.'[email protected]:'.insteadOf 'https://github.com/'

About

Most commonly used git tips and tricks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published