首頁 > 軟體

40個適用於Linux管理員和開發人員的git命令(下)

2020-06-16 16:11:57

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命令(上) https://www.linuxidc.com/Linux/2020-04/163079.htm


IT145.com E-mail:sddin#qq.com