學會了這一招,距離Git大神不遠了!

TechFlow2019發表於2020-11-30

大家好,今天我們來介紹git當中一項非常重要的功能——互動式工具

有的時候如果我們要處理的檔案很多,使用git add .等操作會非常有隱患,因為很有可能我們一不小心就疏忽了一些內容。如果我們使用一個檔名一個檔名地填寫呢,又非常地複雜,體驗並不好。所以呢git當中還提供了第三種方法,也就是今天要介紹的內容——互動式工具。

互動式暫存

互動式暫存的命令非常簡單,其實就是一個引數,-i。這裡的i表示的是interactive,也就是互動的意思。當我們執行這個命令之後,git會進入一個互動式的終端。這樣我們就可以通過一些簡短地命令和git進行互動。

首先,我們輸入git add -i 進入互動式的命令。

可以看到這裡有8個選項,這裡的選項大家應該都能看懂,其中整合了很多種功能,我們接下來一個一個講解。

首先是將新檔案新增到暫存區,我們選擇4,表示新增未被git管理的檔案,接著又會詢問我們要新增的檔案。這裡我們就不用再輸入檔名了,直接選擇序號即可。我們先新增一個,選擇3。之後我們會看到3對應的檔名前面被打上了*,表示這個檔案將會被新增。

接著我們再敲一次回車,可以回到上級選單,然後我們選擇7退出,可以看到git的狀態已經改變了。

檢視改動

我們將改動新增到暫存區之後,我們還可以使用git add -i 來檢視某一個檔案的具體改動。操作方法也非常簡單,我們同樣通過git add -i 進入互動模式,然後選擇6進入diff模式。

接著我們輸入1,表示我們要檢視的改動,git會開啟一個vim視窗,為我們展示這個檔案當中被我們新增的改動。

它的效果等價於我們執行git diff --cached

取消暫存

如果我們add了之後,發現add錯了,想要反悔,那麼也是容易的,我們可以使用revert功能撤銷我們這次的add

操作也很簡單,我們還是輸入git add -i 進入互動式的命令。會發現我們剛進來的時候就提示我們當前暫存區的狀態。這裡我們選擇3進行撤銷,git會展示出我們暫存區的所有檔案,這裡我們只提交了一個檔案,所以也只能看到一個。

image-20201022084056498
image-20201022084056498

這裡我們選擇1號檔案,然後退出,會發現我們回到了git提交之前的狀態。

暫存補丁

最後介紹一下補丁的功能,這個功能我用的不多,不過用好了可以在一些情況下大大簡化我們的操作。

當我們執行暫存操作的時候,我們針對的主體都是某一個檔案。但是會有這樣一種情況,某一個檔案當中的改動很多,我們只想要把其中的一部分新增進git,另外一部分先保留在本地。這種情況也很常見,比如同時開發兩個功能,一個開發好了,另外一個還在測試。為了趕工期,決定先把其中的一個功能先上線,那麼還在測試的功能顯然不能被提交,否則可能會帶來隱患。

針對這種情況,我們就需要使用補丁。為了演示,我們在之前的檔案當中加了兩行廢話,然後執行git add -i,選擇5.

當我們選擇了我們想要進行補丁的檔案並且按回車之後,git會把我們的改動一個部分一個部分地詢問我們。

這裡的命令可能看不明白,沒關係,我們輸入?可以獲取完整的含義。

說了這麼多,其實關鍵的只有兩個,y表示需要把它加入儲存,n表示不加入。這樣當我們操作完了之後,我們再來檢視狀態,會發現剛才我們操作過的檔案當中,一部分被新增了進來,另外一部分沒有。

總結

怎麼樣,互動式命令是不是非常好用呢?

它的最大的一個優點就是將多個命令集合在了一起,可以一個命令實現多個功能。並且每個功能都以互動的形式展現,可以方便我們的操作,降低我們搞錯的機率。這也是很多git大神非常喜歡的功能,希望大家都能學會。

今天的文章就到這裡,衷心祝願大家每天都有所收穫。如果還喜歡今天的內容的話,請來一個三連支援吧~(點贊、關注、轉發

原文連結,求個關注

{{uploading-image-87920.png(uploading...)}}

相關文章