Git 有時可能會令人生畏。因為有太多的命令和細節需要學習。不過雖然Git的內容很多,但閱讀起來還是很輕松的。一旦你克服了最初不堪重負的感覺,就會感覺到有明顯進展。以下是你可能還不知道的 15 個 git 命令的列表,希望它們能幫助你熟練掌握Git。
1.修改最近的提交
git commit --amend
—-amend 允許你把階段性更改(例如添加被遺忘的文件)附加到上一次提交。添加 –no-edit 將會修改最后的提交但不更改它的提交消息。如果沒有更改,–amend 將允許你重新輸入最后的提交消息。
更多信息:git help commit。
2.以交互方式添加文件的選定部分
git add -p
-p (或 —patch) 允許以交互的形式選擇每個跟蹤文件中要提交的部分。這樣每次提交僅包含相關的更改。
更多信息:git help add
3.以交互方式隱藏文件的選定部分
git stash -p
與 git-add 類似,你可以使用 –patch 選項以交互方式選擇每個要跟蹤文件的部分。
更多信息:git help stash
4.隱藏未跟蹤的文件
git stash -u
在默認情況下,存儲時不包括那些未跟蹤的文件。為了改變這種行為并包括那些文件,你需要使用 -u 參數。還有一個 -a(-all)參數可以存儲所有未跟蹤和忽略的文件,這種操作通常能是你不需要的。
5.以交互方式還原文件的選定部分
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
6.切換到上一個分支
git checkout -
此命令使你可以快速切換到先前簽出的分支。通常 – 是上一個分支的別名。它也可以與其他命令一起使用。我為 checkout 創建了一個別名 co,因此可以是 git co –
7.恢復所有本地更改
git checkout .
如果你確定可以放棄本地所有更改,則可以用 . 一次完成。但是始終使用 checkout –patch 是一個好習慣。
8.顯示更改
git diff --staged
該命令顯示所有已階段化的更改(已添加到索引中的更改),而與 git diff 相比,后者僅顯示工作目錄中的更改(索引中沒有更改)。
更多信息:git help diff
9.在本地重命名分支
git branch -m old-name new-name
如果要重命名當前簽出的分支,可以將命令縮短為以下形式:
git branch -m new-name
更多信息:git help branch
10.遠程重命名分支
為了遠程重命名分支,在本地重命名分支后,你需要先遠程刪除該分支,然后再次推送重命名的分支。
git push origin :old-name git push origin new-name
11.一次打開所有有沖突的文件
重新設置基準可能會導致沖突,以下命令將打開需要你解決這些沖突的所有文件。
git diff --name-only --diff-filter=U | uniq | xargs $EDITOR
12.發生了什么變化?
git whatchanged —-since=‘2 weeks ago’
該命令將顯示一個日志,其中包含最近兩周內每次提交所引入的差異。
13.從上一次提交中刪除文件
你可以通過結合 rm 和 commit –amend 命令來從上一次提交中快速刪除誤提交的文件:
git rm —-cached <file-to-remove> git commit —-amend
14.查找分支
git branch --contains <commit>
該命令將顯示包含特定提交的所有分支。
15.在本地優化存儲庫
git gc --prune=now --aggressive
更多信息:git help gc
總結
盡管我非常喜歡CLI,但還是強烈建議使用 Magit 來進一步提高你使用 Git 的效率。它是我用過的最好的軟件之一。
也可以通過 help 命令查看 Git 工作流程的精彩概述。請務必仔細閱讀!
git help workflows
英文原文地址:?https://zaiste.net/15-git-commands-you-may-not-know/?為了保證的可讀性,本文采用意譯而非直譯。
教程推薦:《Git》