git CLI提供了大量的git命令,以使開發人員更輕松地進行軟件開發。為了方便讀者,我們的編輯人員概述了一些最有用的命令。因此,請繼續閱讀并按照自己的節奏發現它們。
21、將標簽添加到您的項目
標簽使您可以標記開源項目中的重要事件。開發人員經常使用它們來標記新的復發或錯誤修復。請仔細查看以下git命令,以了解如何使用git將標簽添加到項目中。
linuxidc@Ubuntu:~/www.linuxidc.com$ git tag 1.0.0 new-linuxidc
linuxidc@ubuntu:~/www.linuxidc.com$ git tag 1.0.0 new-linuxidc
fatal: 標簽 ‘1.0.0’ 已存在
此命令將標簽1.0.0添加到特定的提交。您可以使用以下命令獲取commit-id(new-linuxidc)。
linuxidc@ubuntu:~/www.linuxidc.com$ git log
commit 482b4bebada278b29001338411de7c42743065d5 (HEAD -> new-linuxidc, tag: 1.0.0, master)
Author: linuxidc <root@linuxidc.net>
Date: Thu Apr 30 14:21:46 2020 +0800
Linuxidc Commit
使用以下命令將標簽推送到您的遠程倉庫中。
linuxidc@ubuntu:~/www.linuxidc.com$ git push origin –tags
您需要明確指定–tags選項。否則,標簽只會添加到您的本地倉庫中,而不會添加到遠程倉庫中。
22、獲取遠程數據
您將經常使用的另一個常見git命令是fetch。由于許多原因,它非常有用。首先,訪存僅檢索新數據/引用,而不將它們合并到本地分支。因此,您可以放心,本地倉庫的工作副本將保持安全可靠。
linuxidc@ubuntu:~/www.linuxidc.com$ git fetch origin
這是檢查遠程代碼庫最新進度而又不破壞項目自己版本的絕佳方法。一旦確定所有新數據都可以使用,只需將它們合并到本地分支即可。
23、恢復未提交的更改
git restore命令允許開發人員恢復其項目中所有未提交的更改。這些是您對項目的工作版本或本地索引中的內容所做的更改。您可以使用此命令來還原工作副本中的更改或索引中的更改,或者同時執行這兩個操作。
linuxidc@ubuntu:~/www.linuxidc.com$ git restore –staged linuxidc1.py
linuxidc@ubuntu:~/www.linuxidc.com$ git restore –source=HEAD –staged –worktree linuxidc1.py
第一個命令將還原索引中的文件linuxidc1.py,第二個命令將還原索引和項目的當前工作目錄。
24、刪除文件
有時,您可能希望從工作樹或項目索引中完全刪除一些文件。您可以使用git rm命令來執行此操作。但是,此命令不會從您的工作目錄中刪除指定的文件。使用Linux rm命令執行此操作。
$ git rm *.py
$ git rm -r dir/
$ git rm –cached *.py
第一條命令從工作樹和索引中刪除所有py文件。第二個命令從dir/目錄中刪除所有內容。最后一條命令將僅從索引而不是工作樹中刪除所有py文件。
25、移動或重命名文件
您可以使用git移動或重命名文件,就像使用Linux mv命令一樣。
git mv linuxidc1.py linuxidc11.py
上面的命令只是執行以下Linux操作。
$ mv test.py new-test.py
$ git add new-test.py
$ rm test.py
因此,您可以使用git mv命令來避免輸入大量額外的Linux終端命令。
在git中移動和重命名文件
26、清理未跟蹤的文件
未跟蹤的文件是不在git版本控制系統下的文件。在進行大型項目時,您經常會偶然發現此類文件。您可以使用幾種方法刪除它們,包括git reset和git checkout。但是,使用git clean命令是最合適的方法。
linuxidc@ubuntu:~/www.linuxidc.com$ git clean
fatal: clean.requireForce 默認為 true 且未提供 -i、-n 或 -f 選項,拒絕執行清理動作
上面的命令失敗,因為這是在我的系統中配置git的方式。您可以通過添加-n,-i或-f選項來解決此問題。
linuxidc@ubuntu:~/www.linuxidc.com$ git clean -n
27、優化本地倉庫
我最喜歡的git命令之一是gc。它用于垃圾收集,將幫助您減小本地倉庫的大小。如果您正在處理大量項目,則應經常使用此命令。
linuxidc@ubuntu:~/www.linuxidc.com$ git gc
枚舉對象: 10, 完成.
對象計數中: 100% (10/10), 完成.
壓縮對象中: 100% (10/10), 完成.
寫入對象中: 100% (10/10), 完成.
總共 10 (差異 0),復用 0 (差異 0)
git gc命令運行得非常快,并清理了本地倉庫中所有不必要的文件。由于其速度和效率,它是最佳的優化方法之一。您也可以使用–aggressive選項來增加優化。但是,這將需要更多時間才能完成。
28、存檔本地倉庫
您可以使用git archive命令輕松地歸檔本地倉庫。它允許開發人員將他們的項目安全地存儲在某個地方。您可以通過網絡傳輸此存檔,也可以將其存儲在Linux文件系統上。
linuxidc@ubuntu:~/www.linuxidc.com$ git archive –output=test –format=tar master
上面的命令將倉庫存儲在名為test的tar文件中。如果需要,可以省略–format選項。在這種情況下,git將嘗試從名稱中推斷出存檔格式。此命令還有更多選項可用。
29、搜索模式
在大型項目中工作時,通常需要搜索其他內容。幸運的是,git grep命令使我們能夠在倉庫中搜索特定的模式,并使開發更加容易。它的工作方式與標準Linux grep命令非常相似,具有一些特定于git的功能。
linuxidc@ubuntu:~/www.linuxidc.com$ git grep -iw ‘import’ master
此命令在我們的master分支中顯示所有包含“ import”的行。它以不區分大小寫的方式搜索。以下命令將在所有提交和分支中搜索給定的模式。
linuxidc@ubuntu:~/www.linuxidc.com$ git grep ‘import’ $(git rev-list –all)
如果您正在協作大型項目,這是最好的git命令之一。
30、管理工作樹
開發人員可以在git中使用多個工作樹。當簽出多個項目分支時,這很有用。檢查以下git命令,以了解如何在git中管理工作樹。
linuxidc@ubuntu:~/www.linuxidc.com$ git worktree list
linuxidc@ubuntu:~/www.linuxidc.com$ git worktree add new-branch
linuxidc@ubuntu:~/www.linuxidc.com$ git worktree remove new-branch
linuxidc@ubuntu:~/www.linuxidc.com$ git worktree prune
您可以使用第一個命令顯示當前的工作樹。使用第二個命令添加一個新的“鏈接的工作樹”,并使用第三個命令刪除該樹。最后一條命令允許您修剪工作樹信息。
31、刪除未跟蹤的對象
有時您可能想刪除不再由git跟蹤的對象。Git提供了一個簡單的命令來執行此操作。git prune命令只會從對象數據庫中刪除未跟蹤的對象,而不會刪除引用本身。
linuxidc@ubuntu:~/www.linuxidc.com$ git prune –dry-run
linuxidc@ubuntu:~/www.linuxidc.com$ git prune –verbose –progress
第一條命令不會刪除任何內容,只會顯示修剪后會刪除的對象。第二條命令在刪除期間提供詳細的輸出以及進度報告。您可以使用prune命令和git gc命令一起優化倉庫。
32、打包未歸檔文件
在git中,包是單個壓縮對象的集合。Git對這些對象應用增量壓縮并將其存儲在單個文件中。它們用于減少Linux文件系統或鏡像系統上的負載。git repack命令允許用戶創建新的包,這些包由不位于現有包內的對象組成。
linuxidc@ubuntu:~/www.linuxidc.com$ git repack
您可以將此命令與gic gc和git prune一起使用,以優化git倉庫。
33、計算解包的對象數量
除非解壓縮的對象太多,否則不應經常重新打包對象。git count-objects命令是一種簡單但有用的方法,用于查看解包對象的數量及其消耗的磁盤空間。
linuxidc@ubuntu:~/www.linuxidc.com$ git count-objects
使用上面的命令來確定是否應該重新打包git。您可以添加–verbose標志以獲取詳細信息,還可以添加–人類可讀標志以常規方式顯示尺寸。
34、驗證對象數據庫
Git最初是作為文件系統開發的。它具有一個稱為fsck的有用命令,其作用與Unix fsck非常相似。您可以使用此命令來驗證連接性并執行對象的完整性檢查。
linuxidc@ubuntu:~/www.linuxidc.com$ git fsck
運行以上命令將顯示在對象數據庫中找到的所有損壞的對象。它是查找丟失或不良對象的最有用的git命令之一。
35、顯示每次提交的更改
git whatchanged命令是我們最喜歡的git子命令中的另一個。這是一種查看每個git commit引入到我們項目的更改的簡單但有效的方法。
linuxidc@ubuntu:~/www.linuxidc.com$ git whatchanged
此git命令將使用提交日志和diff輸出顯示信息。總的來說,它的操作與git log命令非常相似。
36、匯總日志信息
您還可以使用git shortlog命令查看歷史記錄。該命令的主要思想是將輸出包含在發行公告中。快速瀏覽以下命令以了解其工作原理。
linuxidc@ubuntu:~/www.linuxidc.com$ git shortlog
linuxidc@ubuntu:~/www.linuxidc.com$ git shortlog –email –summary
添加–email選項將顯示每個作者的電子郵件。該-summary選項會抑制通常輸出,只會顯示提交的數目。
37、管理配置選項
git有大量可用的配置選項。您可以使用git config命令查詢,設置或替換各種選項。可以對特定倉庫和全局配置進行更改。
linuxidc@ubuntu:~/www.linuxidc.com$ git config –list
上面的命令將在git中列出所有當前設置的配置選項。您可以輕松添加或刪除新選項。遵循config子命令的幫助頁面以了解如何執行這些任務。
linuxidc@ubuntu:~/www.linuxidc.com$ git config –help
38、Git幫助
git或任何其他Linux終端命令的幫助頁面提供了所有可用選項的摘要信息。當您遇到git問題時,它應該是第一個訪問的地方。快速瀏覽以下命令以了解如何調用git幫助頁面。
linuxidc@ubuntu:~/www.linuxidc.com$ git help
linuxidc@ubuntu:~/www.linuxidc.com$ git –help
因此,您可以使用Unix風格的–help選項或git中內置的help子命令來查詢git幫助頁面。此外,git還提供了有關子命令的幫助頁面。
linuxidc@ubuntu:~/www.linuxidc.com$ git <command> –help
linuxidc@ubuntu:~/www.linuxidc.com$ git commit –help
39、手冊頁
手冊頁包含有關git版本控制系統及其所有子命令的深入信息。您可以按照以下語法查看它們。
linuxidc@ubuntu:~/www.linuxidc.com$ man git
linuxidc@ubuntu:~/www.linuxidc.com$ man git commit
因此,您也可以像使用幫助頁面一樣查看各個子命令的手冊。
40、顯示版本信息
您可以使用以下簡單命令查看系統上已安裝的git版本。由于git在很大程度上隨著時間的推移而發展,因此各種git版本之間存在顯著差異。
linuxidc@ubuntu:~/www.linuxidc.com$ git –version
只需使用以上命令即可在您的計算機上獲取特定版本的git。
總結
Git憑借其實用的設計和多樣化的功能集,鞏固了其作為事實上的版本控制系統的地位。盡管有一些很好的選擇,例如Mercurial和CVS,但是大量實用的git命令使它比競爭對手更通用。我們的編輯竭盡全力為您概述最實用的命令。希望您已從本指南中獲得了所需的基本見解。如果您對特定命令有疑問,請隨時向我們提問。
40個適用于Linux管理員和開發人員的git命令(上) http://m.0106606.com/Linux/2020-04/163079.htm