67 lines
1.2 KiB
Markdown
67 lines
1.2 KiB
Markdown
---
|
|
title: Git tricks
|
|
layout: default
|
|
---
|
|
|
|
## Refs
|
|
|
|
HEAD^ # 1 commit before head
|
|
HEAD^^ # 2 commits before head
|
|
HEAD~5 # 5 commits before head
|
|
|
|
## Branches
|
|
|
|
# create a new branch
|
|
git checkout -b $branchname
|
|
git push origin $branchname --set-upstream
|
|
|
|
# get a remote branch
|
|
git fetch origin
|
|
git checkout --track origin/$branchname
|
|
|
|
# delete local remote-tracking branches (lol)
|
|
git remote prune origin
|
|
|
|
# list merged branches
|
|
git branch -a --merged
|
|
|
|
# delete remote branch
|
|
git push origin :$branchname
|
|
|
|
## Submodules
|
|
|
|
# Import .gitmodules
|
|
git submodule init
|
|
|
|
# Clone missing submodules, and checkout commits
|
|
git submodule update --init --recursive
|
|
|
|
# Update remote URLs in .gitmodules
|
|
# (Use when you changed remotes in submodules)
|
|
git submodule sync
|
|
|
|
## Cherry pick
|
|
|
|
git rebase 76acada^
|
|
|
|
## Misc
|
|
|
|
# get current sha1 (?)
|
|
git show-ref HEAD -s
|
|
|
|
# show single commit info
|
|
git log -1 f5a960b5
|
|
|
|
## Short log
|
|
|
|
$ git shortlog
|
|
$ git shortlog HEAD~20.. # last 20 commits
|
|
|
|
James Dean (1):
|
|
Commit here
|
|
Commit there
|
|
|
|
Frank Sinatra (5):
|
|
Another commit
|
|
This other commit
|