7 個改變我生活的 Git 小技巧
導讀 | Git 是當前最流行最普遍的版本控制系統之一,它被應用於私有系統和公開網站上各種各樣的開發工作。不論我變得對 Git 有多熟悉,似乎總有些功能等待著被髮掘。下面分享下和 Git 相關的改變我工作方式的一些小技巧。 |
我們每個人都不時在輸入時犯拼寫錯誤,但是如果你使能了 Git 的自動糾錯功能,你就能讓 Git 自動糾正一些輸入錯誤的子
。
假如你想用
git status 來檢查狀態,但是你恰巧錯誤地輸入了 git stats。通常情況下,Git 會告訴你 ‘stats’ 不是個有效的命令:
$ git statsgit: ‘stats’ is not a git command. See ‘git --help’.The most similar command isstatus
為了避免類似情形,只需要在你的 Git 配置中使能自動糾錯功能。
$ git config --global help.autocorrect 1
如果你只想對當前的倉庫生效,就省略掉選項 --global。
這個命令會使能自動糾錯功能。在相應的 Git 官方文件[1] 中可以看到這個命令的詳細說明,但是試著敲一下上面的錯誤命令會使你對這個設定幹了什麼有個直觀的瞭解:
$ git statsgit: ‘stats’ is not a git command. See ‘git --help’.On branch masterYour branch is up to date with ‘origin/master’.nothing to commit, working tree clean
在上面的例子中,Git 直接執行了它建議命令的第一個,也就是 git status,而不是給你展示它所建議的子命令。
需要對提交進行計數的原因有很多。例如,一些開發人員利用提交計數來判斷什麼時候遞增工程構建序號,也有一些開發人員用提交計數來對專案進展取得一個整體上的感觀。
對提交進行計數相當簡單而且直接,下面就是相應的 Git 命令:
$ git rev-list --count branch-name
在上述命令中,引數 branch-name 必須是一個你當前倉庫裡的有效分支名。
$ git rev-list –count master32$ git rev-list –count dev34
你的程式碼倉庫不僅對你來說很寶貴,對你所在的組織也一樣。透過少數幾個慣例你就能使自己的倉庫整潔並且保持最新。使用 .gitignore 檔案[2] 就是這些最好的慣例之一。透過使用這個檔案你可以告訴 Git 不要儲存一些不需要記錄的檔案,如二進位制檔案、臨時檔案等等。
當然,你還可以使用 Git 的垃圾回收來進一步最佳化你的倉庫。
$ git gc --prune=now --aggressive
這個命令在你和你的團隊經常使用 pull 或者 push 操作的時候很有幫助。
它是一個內部工具,能清理掉你的倉庫裡沒法訪問或者說“空懸”的 Git 物件。
大多數時候,刪除所有未追蹤的檔案是安全的。但很多時候也有這麼一種場景,你想刪掉這些未追蹤的檔案同時也想做個備份防止以後需要用到。
Git 組合一些 Bash 命令和管道操作,可以讓你可以很容易地給那些未追蹤的檔案建立 zip 壓縮包。
$ git ls-files --others --exclude-standard -z |\ xargs -0 tar rvf ~/backup-untracked.zip
上面的命令就生成了一個名字為 backup-untracked.zip 的壓縮包檔案(當然,在 .gitignore 裡面忽略了的檔案不會包含在內)。
每個倉庫都有一個 .git 資料夾,它是一個特殊的隱藏資料夾。
$ ls -a. … .git
Git 主要透過兩個東西來工作:
當前工作樹(你當前檢出的檔案狀態)
你的 Git 倉庫的資料夾(準確地說,包含版本資訊的 .git 資料夾的位置)
這個資料夾儲存了所有參考資訊和一些其他的如配置、倉庫資料、HEAD 狀態、日誌等更多諸如此類的重要細節。
一旦你刪除了這個資料夾,儘管你的原始碼沒被刪,但是類似你的工程歷史記錄等遠端資訊就沒有了。刪除這個資料夾意味著你的工程(至少本地的複製)不再在版本控制的範疇之內了。這也就意味著你沒法追蹤你的修改;你沒法從遠端倉拉取或推送到遠端倉了。
通常而言,你需要或者應當對你的 .git 資料夾的操作並不多。它是被 Git 管理的,而且大多數時候是一個禁區。然而,在這個資料夾內還是有一些有趣的工件,比如說當前的 HEAD 狀態在內的就在其中。
$ cat .git/HEADref: refs/heads/master
它也隱含著對你倉庫地描述:
$ cat .git/description
這是一個未命名的倉庫;透過編輯檔案 ‘description’ 可以給這個倉庫命名。
Git 鉤子資料夾連同一些鉤子檔案例子也在這裡。參考這些例子你就能知道 Git 鉤子能幹什麼了。當然,你也可以 參考這個 Seth Kenlon 寫的 Git 鉤子介紹[3]。
有時,你會想要瀏覽另一個分支下某個檔案的內容。這其實用一個簡單的 Git 命令就可以實現,甚至都不用切換分支。
設想你有一個命名為 README.md[4] 的檔案,並且它在 main 分支上。當前你正工作在一個名為 dev 的分支。
用下面的 Git 命令,在終端上就行。
$ git show main:README.md
一旦你執行這個命令,你就能在你的終端上看到 main 分支上該檔案的內容。
[/yiji]7、Git 中的搜尋[/yiji]
用一個簡單的命令你就能在 Git 中像專業人士一樣搜尋了。更有甚者,儘管你不確定你的修改在哪次提交或者哪個分支上,你依然能搜尋。
$ git rev-list --all | xargs git grep -F ''
例如,假設你想在你的倉庫中搜尋字串 “font-size: 52 px;" :
$ git rev-list –all | xargs git grep -F ‘font-size: 52 px;’F3022…9e12:HtmlTemplate/style.css: font-size: 52 px;E9211…8244:RR.Web/Content/style/style.css: font-size: 52 px;
試試這些小技巧
我希望這些小技巧對你是有用的,或者增加你的生產力或者節省你的大量時間。
你也有一些喜歡的 Git 技巧嗎?在評論區分享吧。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2786073/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 8 個 Git 的小技巧Git
- Google改變生活Go
- 「主演算法」即將改變我們的生活演算法
- git小技巧Git
- git 小技巧Git
- HTML 5:足以改變我們未來生活的十項提示HTML
- 日益發展的物聯網將如何改變我們的生活?
- 7個改變世界的Java專案Java
- 分享一個用Git裝逼的小技巧~Git
- AI數字人互動大屏:如何改變我們的生活?AI
- 技術改變生活方式
- 【招募完成】《小行動,大改變:用微解決方案徹底改變你的生活》
- MySQL自定義變數的三個小技巧MySql變數
- Git 小技巧彙總Git
- Git使用小技巧之多個遠端倉庫Git
- 改進c#程式碼的5個常用的小技巧C#
- 改變你生活的五十條認知智慧
- [譯] 迅速提高設計美感的 7 個小技巧
- 在未來物聯網將怎樣改變我們的醫療保健生活
- 電腦實用7個小技巧分享
- 人工智慧的大資料是什麼?它如何徹底改變我們的生活?人工智慧大資料
- 改變遊戲規則的 API 設計審查的5個技巧遊戲API
- 8個小技巧,讓一個遊戲變得更好玩遊戲
- 改變苦逼的生活:技術變成客戶才值錢
- 一些 實用的 git 小技巧Git
- Git 小技巧:忽略某些檔案的更改Git
- 程式碼重構:函式重構的 7 個小技巧函式
- 十年間,這些事物改變了一個網際網路人的生活
- 分享幾個組合Git+Shell提升工作效率的小技巧Git
- [譯]7個ES6程式設計小技巧程式設計
- 盤點智慧家居改變生活的十大場景
- 區塊鏈是什麼?區塊鏈技術改變我們生活和工作的創新區塊鏈
- postman 的一個小技巧!Postman
- 25個 Git 進階技巧Git
- 怎樣改變小程式的首頁?
- Git改變歷史-章節筆記Git筆記
- 日常生活小技巧 -- vim 中 ctags 的安裝和使用
- 谷歌風投將改變醫療行業的7個專案谷歌行業