每個開發(fā)人員都應該知道的 20 個 Git 命令行技巧
大多數(shù)開發(fā)人員每天都會使用 Git,但許多人只是對其功能略知一二。
學習一些 git 命令行技巧可以改變游戲規(guī)則,讓你更高效、更有成效,對版本控制更有信心。
那么,讓我們深入了解每個開發(fā)人員工具包中都應該有的 20 個 Git 命令行技巧。
1. 交互式添加
此命令允許您暫存文件的部分內(nèi)容而不是整個文件。當您只想提交文件中的某些更改而將其余部分留待以后處理時,這非常有用。
如何使用它:
git add -p
提示:
當您在一個文件中處理多個功能但想要單獨提交它們時,請使用此功能!
2. 撤消最后一次提交
在最后一次提交中犯了錯誤?沒問題。此命令撤消您的最后一次提交,但將更改保留在您的工作目錄中,因此您可以輕松解決問題。
如何使用它:
git reset --soft HEAD~1
提示:
如果您想保留更改,請使用 --soft;如果您想撤消所有內(nèi)容(包括本地更改),請使用 --hard。
3. 檢查分支的上游狀態(tài)
此命令從遠程獲取所有更新,并修剪(刪除)對已從遠程刪除的分支的引用。
如何使用它:
git fetch --all --prune
提示:
定期運行它以避免分支列表混亂,尤其是在大型團隊中工作時。
4. 快速提交修復
忘記添加文件或在提交信息中輸入錯誤?git commit --amend 可讓您更新上次提交,而無需創(chuàng)建新提交。
如何使用:
git commit --amend
提示:
這非常適合消除小錯誤,而不會用不必要的提交污染您的 Git 日志。
5. 存儲您的工作
需要切換分支但又不想丟失當前更改?存儲可讓您保存工作而不提交,讓您稍后返回。
如何使用它:
git stash
提示:
使用 git stash save "description" 添加描述,以便你以后可以快速識別你的存儲。
6. 彈出你的存儲
當你準備好返回到你的存儲工作時,你可以將其“彈出”回你的工作目錄。
如何使用它:
git stash pop
提示:
如果您想應用存儲而不刪除它,請使用 git stash apply。
7. 挑選提交
需要來自另一個分支的特定提交?挑選提交可讓您將其應用于當前分支,而無需合并整個分支。
如何使用:
git cherry-pick <commit-hash>
提示:
當您需要反向移植錯誤修復或小功能時,這尤其有用。
8. 清理本地分支
一旦您完成了某個功能,就不要讓舊分支殘留。使用這個簡單的命令清理它們。
如何使用它:
git branch -d <branch-name>
提示:
如果您需要強制刪除尚未合并的分支,請使用 git branch -D <branch-name>。
9. 查看文件歷史記錄
使用 git log -- <file> 跟蹤特定文件的演變。這會向您顯示影響該文件的所有提交。
如何使用它:
git log -- <file>
提示:
添加 --stat 以查看有關更改的更多詳細信息。
10. 歸咎于一行代碼
想知道是誰寫了一行代碼?git blame 可以逐行顯示文件中哪些內(nèi)容被誰修改。
如何使用:
git blame <filename>
提示:
將其與 git log -- <file> 結(jié)合使用可獲得更詳細的更改歷史記錄。
11. 查找錯誤來源
這個強大的工具會對您的提交歷史記錄執(zhí)行二進制搜索,以查找引入錯誤的提交。
如何使用它:
git bisect start
git bisect bad
git bisect good <older-commit-hash>
它就像 Git 的偵探模式——非常適合識別錯誤出現(xiàn)的位置,而無需手動檢查每個提交。
提示:
在復雜的項目中使用它,在這些項目中您無法輕松確定何時出現(xiàn)問題。
12. 中止合并
如果您已開始合并但事情沒有按計劃進行,此命令將中止合并并返回到之前的狀態(tài)。
如何使用它:
git merge --abort
它可以快速擺脫棘手的情況,讓您重新開始。
提示:
在嘗試合并之前,請務必確保您的工作目錄是干凈的。
13. 搜索提交消息
正在尋找特定的提交消息?使用 git log --grep 搜索提交消息。
如何使用它:
git log --grep="search term"
當您記住提交消息中的關鍵字而不是確切的提交哈希時,您可以更快地找到提交。
提示:
將其與 git log --author 結(jié)合使用,以查找特定開發(fā)人員的提交。
14. 標記提交
標簽可用于標記 Git 歷史記錄中的特定點,例如發(fā)布。
如何使用:
git tag -a v1.0 -m "Version 1.0 release"
它有助于標記重要的里程碑,使以后輕松跳回到特定版本。
提示:
當您不需要其他元數(shù)據(jù)時,請使用輕量級標簽(git tag <tagname>)。
15. 硬重置以清理工作區(qū)
需要快速擺脫未跟蹤的文件和目錄?此命令會將它們清除,只留下受版本控制的文件。
如何使用它:
git clean -fd
它可以清除不需要的雜亂,讓您的工作區(qū)井井有條。
提示:
請謹慎使用 - 確保您以后不需要這些未跟蹤的文件!
16. 查看所有 Git 操作
如果您曾經(jīng)弄亂過 Git 歷史記錄,git reflog 就是您的安全網(wǎng)。它顯示存儲庫上所有操作的日志,允許您恢復丟失的更改。
如何使用它:
git reflog
它是您的 Git 歷史記錄,可讓您找到丟失的提交和操作。
提示:
當您認為在錯誤重置或變基后所有希望都破滅時,請使用它!
17. 壓縮提交
想要在推送之前清理您的提交歷史記錄?壓縮提交可讓您將多個提交合并為一個,以獲得更整潔的歷史記錄。
如何使用它:
git rebase -i HEAD~<number-of-commits>
壓縮可讓您的提交歷史看起來精致而專業(yè),尤其是在與團隊共享時。
提示:
這非常適合在推送之前將多個小修復合并為一個清晰的提交。
18. 撤銷提交
是否需要撤消特定提交而不影響您的整個歷史記錄?git revert 會創(chuàng)建一個新的提交,以撤消指定提交的更改。
如何使用它:
git revert <commit-hash>
與重置不同,它不會重寫歷史記錄 - 它只是反轉(zhuǎn)提交的效果,使其成為以干凈的方式撤消錯誤的完美選擇。
19. 查看分支圖表
此命令為您提供分支歷史記錄的視覺概覽,使您更容易查看合并、分支和提交。
如何使用它:
git log --graph --oneline --all
它是項目結(jié)構(gòu)的一覽視圖,對于理解復雜的分支設置特別有用。
20. 自動完成
不要浪費時間輸入長命令。啟用 Git 自動完成功能,只需按簡單的 TAB 鍵即可完成命令。
如何使用它:開始輸入 Git 命令后,只需按 TAB 鍵即可。
自動完成可加快您的工作流程并有助于防止輸入錯誤。
提示:
確保在終端中設置了 Git 自動完成功能,以大幅提高工作效率!
這些技巧不僅僅是開發(fā)環(huán)境中保持高效和井然有序的必備工具。無論您是獨自編碼還是在團隊中工作,了解這些技巧都可以大大提高您的工作效率,讓您在同事面前看起來像一個 Git 大師。