Git 指令小訣竅
快速切換回去剛剛的分支
用 (-) 就可以切換回剛剛的分支,跟 Shell 一樣
# Checkout master
git checkout master
# Create and checkout to a new branch
git checkout -b git-tips
# Checkout master
git checkout master
# Checkout to the previous branch (git-tips)
git checkout -
刪除已經合併回 master 的分支
# Make sure you have checked out master first
git checkout master
# Delete merged branches to master except master
git branch --merged master | grep -v "master" | xargs -n 1 git branch -d
如果不小心把 master 刪除了,用下列指令救回來就好(前提是你有 push 過遠端程式庫):
git checkout -b master origin/master
刪除遠端程式庫已不存在的分支
如果你想先確定一下有哪些分支會被刪除,但不想實際刪除,請用 –dry-run:
git remote prune origin --dry-run
實際刪除:
git remote prune origin
從目前分支為基礎建立一個新的分支
如果你在 dev 分支,但想要從 master 開始建立分支,基本的作法是:
git checkout master
git checkout -b new-branch
你其實可以直接從 dev 分支開出一個基於 master 的分支
git checkout -b new-branch master
同理,直接基於其他分支開出新的分支
git checkout -b new_branch base_branch
Git 設定小訣竅
排除某些檔案,並將設定檔套用在所有專案上
touch ~/.gitignore
git config --global core.excludesFile ~/.gitignore
或是寫入設定檔:
vi ~/.gitconfig: [core] excludesFile = ~/.gitignore
在 Fetch/Pull 時自動清除遠端已砍掉的分支
git config --global fetch.prune ture
或是寫入設定檔:
vi ~/.gitconfig: [fetch] prune = true
在 rebase 互動模式時,預設啟用 Autosquash
git config --global rebase.autosquash true
或是寫入設定檔:
vi ~/.gitconfig: [rebase] autosquash = true
設定預設的編輯器
git config --global core.editor vim
或是寫入設定檔:
vi ~/.gitconfig: [core] editor = vim
自訂 diff 工具
git config --global diff.tool vimdiff
或是寫入設定檔:
vi ~/.gitconfig: [diff] tool = vimdiff
選項有: vimdiff / magit / meld / kdiff3
Merge 的時候有時候會寫是 diff 資訊,也可以一同設定
git config --global merge.tool vimdiff
或是寫入設定檔:
vi ~/.gitconfig: [merge] tool = vimdiff
Git 指令別名(Alias)
有時候你需要輸入又臭又長的指令,像是:
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
不人道!可以寫入 gitconfig 就好了,之後就可以用 git lg 或是 git lol 來執行簡化過得指令。
vi ~/.gitconfig: [alias] lg=log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative lol=log --graph --decorate --pretty=oneline --abbrev-commit
文章出處:https://about.gitlab.com/2016/12/08/git-tips-and-tricks/
—-