16個不錯的git別名

jopen 8年前發布 | 10K 次閱讀 Git 版本控制系統

git 是一個非常棒的源代碼管理工具,它的使用已經完全整合到開發的工作流當中;同時,git 還是一個 review/OTAP/deployment 工具。

當在 CLI 中使用 git 時,有時必須輸入很多比較長的命令來完成一些事情。盡管大部分 git 命令是很簡單的,但是也有一些非常復雜并難以輸入的命令。而開發人員是比較懶的,并會盡可能的少輸入命令。

因為上述情況很符合我,所以對于我經常使用的 git 命令,我會使用其別名來代替,并會改進命令的返回信息。在這篇文章中,我會介紹一些簡單但非常有用的 git 別名。

簡化常用的 git 命令的別名

一些 git 別名非常簡單,用這些別名替換原始的 git 命令也意味著減少你的輸入,這有一個別名列表:

co  = checkout       # Checkout a branch
cob = checkout -b    # Checkout a new not yet existing branch
f   = fetch -p       # Fetch from a repository and prune any remote-tracking references that no longer exist on the remote.
c   = commit         # Commit you changes
p   = push           # Push you changes to a remote
ba  = branch -a      # List both remote-tracking branches and local branches.
bd  = branch -d      # Delete a branch only if it has been merged
bD  = branch -D      # Force delete a branch
dc  = diff --cached  # Display the staged changes

查看 git 的提交狀態

查看當前工作目錄的提交狀態是大多數開發者的一項日常工作。我們會分段查看自己對哪些文件做了改變,并判斷我們是否改變了原本不打算改變的文件。

將命令簡化,并讓其顯示更多的信息:

st = status -sb

例如:

在 patches 中呈現 git 改變

我喜歡在添加改變之前進行 review,或許你也這么做。 git diff 是能實現這個需求的一個不錯的工具。但如果你只想添加你改變的那部分,或者每次只想 review 一小部分,你可以將你改變的那部分分多次提交。

在這種情況下, git add -p 能解決你的需求:

a = add -p

例如:

更有用的 git 日志

git 日志能幫助我們查看在工作目錄下對代碼做了哪些改變,日志不僅記錄了代碼的提交歷史,而且會記錄分支的合并情況。當我們 輸入規范的提交信息 時,git 日志就成為一個查看代碼變更和為什么變更的重要工具。

改善 git 日志的輸出能快速定位這些改變:

plog = log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'

例如:

lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

例如:

tlog = log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative

例如:

按照合并數量給貢獻者排序

當你對某個 project 有問題并想找一個人說明時,怎么找到這個 project 的第一貢獻者就非常有必要了。

rank = shortlog -sn --no-merges

例如:

刪除所有已合并的分支

在提交 PR 之前,我們需要創建一個本地分支來提交代碼,時間久了之后,你就會發現有很多已經合并到 master 上的分支,一個一個刪除這些分支是比較麻煩的事。

當這些已經合并的分支的數量很大時,用一個簡單的別名來刪除這些分時是很方便的。這個別名會刪除所有已經合并到你當前所在分支的分支:

bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"

例如:

[alias]
    # Shortening aliases
    co = checkout
    cob = checkout -b
    f = fetch -p
    c = commit
    p = push
    ba = branch -a
    bd = branch -d
    bD = branch -D
    dc = diff --cached

    # Feature improving aliases
    st = status -sb
    a = add -p

    # Complex aliases
    plog = log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'
    tlog = log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative
    lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
    rank = shortlog -sn --no-merges
    bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"

原文: 16 awesome git aliases that you will love

來自: http://www.ido321.com/1663.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!