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