做者:zaiste前端
翻譯:瘋狂的技術宅webpack
原文:zaiste.net/15-git-comm…git
未經容許嚴禁轉載web
Git 有時可能會使人生畏。由於有太多的命令和細節須要學習。不過雖然文檔的內容不少,但閱讀起來仍是很輕鬆的。一旦你克服了最初不堪重負的感受,就會感受到有明顯進展。如下是你可能還不知道的 15 個 Git 命令的列表,但願它們能幫助你熟練掌握Git。bash
git commit --amend
複製代碼
—-amend
容許你把階段性更改(例如添加被遺忘的文件)附加到上一次提交。添加 --no-edit
將會修改最後的提交但不更改它的提交消息。若是沒有更改,--amend
將容許你從新輸入最後的提交消息。學習
更多信息:git help commit
。優化
git add -p
複製代碼
-p
(或 —patch
) 容許以交互的形式選擇每一個跟蹤文件中要提交的部分。這樣每次提交僅包含相關的更改。ui
更多信息:git help add
this
git stash -p
複製代碼
與 git-add
相似,你可使用 --patch
選項以交互方式選擇每一個要跟蹤文件的部分。spa
更多信息:git help stash
git stash -u
複製代碼
在默認狀況下,存儲時不包括那些未跟蹤的文件。爲了改變這種行爲幷包括那些文件,你須要使用 -u
參數。還有一個 -a
(-all
)參數能夠存儲全部未跟蹤和忽略的文件,這種操做一般能是你不須要的。
git checkout -p
--patch` can be also used to selectively discard parts of each tracked file. I aliased this command as `git discard
複製代碼
更多信息:git help checkout
git checkout -
複製代碼
此命令使你能夠快速切換到先前簽出的分支。一般 -
是上一個分支的別名。它也能夠與其餘命令一塊兒使用。我爲 checkout
建立了一個別名 co
,所以能夠是 git co -
git checkout .
複製代碼
若是你肯定能夠放棄本地全部更改,則能夠用 .
一次完成。可是始終使用 checkout --patch
是一個好習慣。
git diff --staged
複製代碼
該命令顯示全部已階段化的更改(已添加到索引中的更改),而與 git diff
相比,後者僅顯示工做目錄中的更改(索引中沒有更改)。
更多信息:git help diff
git branch -m old-name new-name
複製代碼
若是要重命名當前簽出的分支,能夠將命令縮短爲如下形式:
git branch -m new-name
複製代碼
更多信息:git help branch
爲了遠程重命名分支,在本地重命名分支後,你須要先遠程刪除該分支,而後再次推送重命名的分支。
git push origin :old-name
git push origin new-name
複製代碼
從新設置基準可能會致使衝突,如下命令將打開須要你解決這些衝突的全部文件。
git diff --name-only --diff-filter=U | uniq | xargs $EDITOR
複製代碼
git whatchanged —-since=‘2 weeks ago’
複製代碼
該命令將顯示一個日誌,其中包含最近兩週內每次提交所引入的差別。
你能夠經過結合 rm
和 commit --amend
命令來從上一次提交中快速刪除誤提交的文件:
git rm —-cached <file-to-remove>
git commit —-amend
複製代碼
git branch --contains <commit>
複製代碼
該命令將顯示包含特定提交的全部分支。
git gc --prune=now --aggressive
複製代碼
更多信息:git help gc
儘管我很是喜歡CLI,但仍是強烈建議使用 Magit 來進一步提升你使用 Git 的效率。它是我用過的最好的軟件之一。
也能夠經過 help
命令查看 Git 工做流程的精彩概述。請務必仔細閱讀!
git help workflows
複製代碼