您好,登錄后才能下訂單哦!
小編給大家分享一下linux中管理家目錄的Git技巧有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
家目錄
當由 Git 管理時,除了配置文件之外,你的家目錄對于所有內容而言都是“無人之地”。這意味著當你打開主目錄時,除了可預見的目錄的列表之外,你什么都看不到。不應有任何雜亂無章的照片或 LibreOffice 文檔,也不應有 “我就在這里放一分鐘” 的臨時文件。
原因很簡單:使用 Git 管理家目錄時,家目錄中所有 未 提交的內容都會變成噪音。每次執行 git status
時,你都必須翻過去之前 Git 未跟蹤的任何文件,因此將這些文件保存在子目錄(添加到 .gitignore
文件中)至關重要。
許多 Linux 發行版提供了一組默認目錄:
Documents
Downloads
Music
Photos
Templates
Videos
如果需要,你可以創建更多。例如,我把創作的音樂(Music
)和購買來聆聽的音樂(Albums
)區分開來。同樣,我的電影(Cinema
)目錄包含了其他人的電影,而視頻(Videos
)目錄包含我需要編輯的視頻文件。換句話說,我的默認目錄結構比大多數 Linux 發行版提供的默認設置更詳細,但是我認為這樣做有好處。如果沒有適合你的目錄結構,你更會將其存放在家目錄中,因為沒有更好的存放位置,因此請提前考慮并規劃好適合你的工作目錄。你以后總是可以添加更多,但是最好先開始擅長的。
.gitignore
清理家目錄后,你可以像往常一樣將其作為 Git 存儲庫實例化:
$ cd$ git init .
你的 Git 倉庫中還沒有任何內容,你的家目錄中的所有內容均未被跟蹤。你的第一項工作是篩選未跟蹤文件的列表,并確定要保持未跟蹤狀態的文件。要查看未跟蹤的文件:
$ git status .AndroidStudio3.2/ .FBReader/ .ICEauthority .Xauthority .Xdefaults .android/ .arduino15/ .ash_history[...]
根據你使用家目錄的時間長短,此列表可能很長。簡單的是你在上一步中確定的目錄。通過將它們添加到名為 .gitignore
的隱藏文件中,你告訴 Git 停止將它們列為未跟蹤文件,并且永遠不對其進行跟蹤:
$ \ls -lg | grep ^d | awk '{print $8}' >> ~/.gitignore
完成后,瀏覽 git status
所示的其余未跟蹤文件,并確定是否有其他文件需要排除。這個過程幫助我發現了幾個陳舊的配置文件和目錄,這些文件和目錄最終被我全部丟棄了,而且還發現了一些特定于一臺計算機的文件和目錄。我在這里非常嚴格,因為許多配置文件在自動生成時會表現得更好。例如,我從不提交我的 KDE 配置文件,因為許多文件包含了諸如最新文檔之類的信息以及其他機器上不存在的其他元素。
我會跟蹤我的個性化配置文件、腳本和實用程序、配置文件和 Bash 配置,以及速查表和我經常引用的其他文本片段。如果有軟件主要負責維護的文件,則將其忽略。當對一個文件不確定時,我將其忽略。你以后總是可以取消忽略它(通過從 .gitignore
文件中刪除它)。
我使用的是 KDE,因此我使用開源掃描程序 Filelight 來了解我的數據概況。Filelight 為你提供了一個圖表,可讓你查看每個目錄的大小。你可以瀏覽每個目錄以查看占用了空間的內容,然后回溯調查其他地方。這是一個令人著迷的系統視圖,它使你可以以全新的方式看待你的文件。
Filelight
使用 Filelight 或類似的實用程序查找不需要提交的意外數據緩存。例如,KDE 文件索引器(Baloo)生成了大量特定于其主機的數據,我絕對不希望將其傳輸到另一臺計算機。
.gitignore
文件在某些項目中,我告訴 Git 忽略我的 .gitignore
文件,因為有時我要忽略的內容特定于我的工作目錄,并且我不認為同一項目中的其他開發人員需要我告訴他們 .gitignore
文件應該是什么樣子。因為我的家目錄僅供我使用,所以我 不 會忽略我的家目錄的 .gitignore
文件。我將其與其他重要文件一起提交,因此它已在我的所有系統中被繼承。當然,從家目錄的角度來看,我所有的系統都是相同的:它們具有一組相同的默認文件夾和許多相同的隱藏配置文件。
我對我的系統進行了數周的嚴格測試,確信將二進制文件提交到 Git 絕對不是明智之舉。我試過 GPG 加密的密碼文件、試過 LibreOffice 文檔、JPEG、PNG 等等。我甚至有一個腳本,可以在將 LibreOffice 文件添加到 Git 之前先解壓縮,提取其中的 XML,以便僅提交 XML,然后重新構建 LibreOffice 文件,以便可以在 LibreOffice 中繼續工作。我的理論是,提交 XML 會比使用 ZIP 文件(LibreOffice 文檔實際上就是一個 ZIP 文件)會讓 Git 存儲庫更小一些。
令我驚訝的是,我發現偶爾提交一些二進制文件并沒有大幅增加我的 Git 存儲庫的大小。我使用 Git 已經很長時間了,我知道如果我要提交幾千兆的二進制數據,我的存儲庫將會受到影響,但是偶爾提交幾個二進制文件也不是不惜一切代價要避免的緊急情況。
有了這種信心,我將字體 OTF 和 TTF 文件添加到我的標準主存儲庫,以及 GDM 的 .face
文件以及其他偶爾小型二進制 Blob 文件。不要想太多,不要浪費時間去避免它。只需提交即可。
即使托管方提供了私人帳戶,也不要將你的主目錄提交到公共 Git 存儲庫。如果你像我一樣,擁有 SSH 密鑰、GPG 密鑰鏈和 GPG 加密的文件,這些文件不應該出現在任何人的服務器上,而應該出現在我自己的服務器上。
我在樹莓派上 運行本地 Git 服務器(這比你想象的要容易),因此我可以在家里時隨時更新任何一臺計算機。我是一名遠程工作者,所以通常情況下就足夠了,但是我也可以在旅行時通過 虛擬私人網絡 訪問我的計算機。
Git 的特點是,只有當你告訴它要推送改動時,它才會把改動推送到你的服務器上。如果你是 Git 的老用戶,則此過程可能對你很自然。對于可能習慣于 Nextcloud 或 Syncthing 自動同步的新用戶,這可能需要一些時間來適應。
以上是“linux中管理家目錄的Git技巧有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。