你們好,今天咱們來介紹git當中一項很是重要的功能——交互式工具git
有的時候若是咱們要處理的文件不少,使用git add .等操做會很是有隱患,由於頗有可能咱們一不當心就疏忽了一些內容。若是咱們使用一個文件名一個文件名地填寫呢,又很是地複雜,體驗並很差。因此呢git當中還提供了第三種方法,也就是今天要介紹的內容——交互式工具。web
交互式暫存的命令很是簡單,其實就是一個參數,-i。這裏的i表示的是interactive,也就是交互的意思。當咱們執行這個命令以後,git會進入一個交互式的終端。這樣咱們就能夠經過一些簡短地命令和git進行交互。vim
首先,咱們輸入git add -i 進入交互式的命令。編輯器
能夠看到這裏有8個選項,這裏的選項你們應該都能看懂,其中集成了不少種功能,咱們接下來一個一個講解。工具
首先是將新文件添加到暫存區,咱們選擇4,表示添加未被git管理的文件,接着又會詢問咱們要添加的文件。這裏咱們就不用再輸入文件名了,直接選擇序號便可。咱們先添加一個,選擇3。以後咱們會看到3對應的文件名前面被打上了*,表示這個文件將會被添加。測試
接着咱們再敲一次回車,能夠回到上級菜單,而後咱們選擇7退出,能夠看到git的狀態已經改變了。flex
咱們將改動添加到暫存區以後,咱們還可使用git add -i 來查看某一個文件的具體改動。操做方法也很是簡單,咱們一樣經過git add -i 進入交互模式,而後選擇6進入diff模式。spa
接着咱們輸入1,表示咱們要查看的改動,git會打開一個vim窗口,爲咱們展現這個文件當中被咱們添加的改動。3d
它的效果等價於咱們執行git diff --cached。orm
若是咱們add了以後,發現add錯了,想要反悔,那麼也是容易的,咱們可使用revert功能撤銷咱們此次的add。
操做也很簡單,咱們仍是輸入git add -i 進入交互式的命令。會發現咱們剛進來的時候就提示咱們當前暫存區的狀態。這裏咱們選擇3進行撤銷,git會展現出咱們暫存區的全部文件,這裏咱們只提交了一個文件,因此也只能看到一個。
這裏咱們選擇1號文件,而後退出,會發現咱們回到了git提交以前的狀態。
最後介紹一下補丁的功能,這個功能我用的很少,不過用好了能夠在一些狀況下大大簡化咱們的操做。
當咱們執行暫存操做的時候,咱們針對的主體都是某一個文件。可是會有這樣一種狀況,某一個文件當中的改動不少,咱們只想要把其中的一部分添加進git,另一部分先保留在本地。這種狀況也很常見,好比同時開發兩個功能,一個開發好了,另一個還在測試。爲了趕工期,決定先把其中的一個功能先上線,那麼還在測試的功能顯然不能被提交,不然可能會帶來隱患。
針對這種狀況,咱們就須要使用補丁。爲了演示,咱們在以前的文件當中加了兩行廢話,而後執行git add -i,選擇5.
當咱們選擇了咱們想要進行補丁的文件而且按回車以後,git會把咱們的改動一個部分一個部分地詢問咱們。
這裏的命令可能看不明白,不要緊,咱們輸入?能夠獲取完整的含義。
說了這麼多,其實關鍵的只有兩個,y表示須要把它加入存儲,n表示不加入。這樣當咱們操做完了以後,咱們再來查看狀態,會發現剛纔咱們操做過的文件當中,一部分被添加了進來,另一部分沒有。
怎麼樣,交互式命令是否是很是好用呢?
它的最大的一個優勢就是將多個命令集合在了一塊兒,能夠一個命令實現多個功能。而且每一個功能都以交互的形式展示,能夠方便咱們的操做,下降咱們搞錯的概率。這也是不少git大神很是喜歡的功能,但願你們都能學會。
今天的文章就到這裏,衷心祝願你們天天都有所收穫。若是還喜歡今天的內容的話,請來一個三連支持吧~(點贊、關注、轉發)
{{uploading-image-87920.png(uploading...)}}