【Git 教程系列第 8 篇】將工作區的改動“新增“到暫存區 — git add
這是【Git 教程系列第 8 篇】,如果覺得有用的話,歡迎關注專欄。
在講解 git add 之前,我們不得不先了解另外一個 git 命令:git status
一:git status 介紹
作用 git status 命令用於顯示工作區和暫存區檔案的狀態,不顯示已經 commit (提交) 到版本庫中的資訊。 使用此命令能看到哪些修改已經放到了暫存區, 哪些沒有,哪些檔案沒有被 Git 跟蹤到。
我在 阿里雲 上新建了一個公共倉庫
倉庫地址連結(SSH方式):[email protected]:suxing_xixi/Write_down_your_name.git
新手學習 git 時可以拿這個公共倉庫練習,上傳一段話證明你成功的推送到這個公共倉庫即可。
推薦使用 SSH 方式,要比 HTTPS 快很多,我的 Windows如何建立--ssh,這篇部落格裡面寫的也很清楚。記得把本地公匙新增到阿里雲的設定-SSH金鑰裡面,這樣你本地電腦才能和遠端練習起來,切記!切記!切記!
例如:我從這個公共倉庫(此時還是空庫)克隆到本地目錄,不做任何操作,直接在本地目錄輸入 git status 命令
會提示當前在 master 分支上沒有任何可提交的內容。
這裡我暫時只列出一個示例,其它 git status 情況,遇到的時候再去分析。
二:git add 介紹
作用 把改動檔案新增到本地倉庫中的暫存區。
舉例說明 現在我在克隆下來的目錄下新建一個名為 "Test" 的 TXT 檔案 (編碼格式 UTF-8 ), 先 git status 一下
由圖可知,當增加新檔案,檢視當前檔案狀態時,狀態如上圖所示,未新增的檔案會被標記為紅色。
然後輸入指令 git add +檔案,回車
再次檢視檔案狀態
新增到暫存區的檔案會被標記為綠色。
三:其它 git add 指令
當然,這只是一個檔案,當有幾十,幾百個檔案都需要提交到暫存區,總不能一個一個的 add 吧,當然不會。
1:git add .
作用:該指令可以把工作區所有改動檔案全部提交到暫存區。
2:git add -A
作用:該指令可以把所有跟蹤檔案中被修改過,或已刪除檔案,和所有未跟蹤的檔案資訊新增暫存區。
3:git add -u
作用:該指令把所有跟蹤檔案中被修改過,或已刪除檔案的資訊新增暫存區。它不會處理那些沒被跟蹤的檔案。
4:git add Hello*
作用:將所有以 Hello 開頭的檔案的修改新增到暫存區。 例如:HelloWorld.txt,HelloUnity.txt,HelloGit.txt 等等。
當然,後面如果你對某個命令不熟悉,可以通過 指令名+空格+ -help ,回車的方式檢視,如
三:git add -help
假如你對 git add 命令不熟悉,你就可以在命令列輸入 git add -help,回車
與 git add 相關的組合指令都會顯示出來,解釋資訊也很清楚。
四:git add --help
如果輸入 指令名+空格+ --help 指令(help前兩個 -),會直接跳轉所輸指令的網頁連結
特殊宣告: 所有的版本控制系統,只能跟蹤文字檔案的改動,比如 TXT 檔案,網頁,所有的程式程式碼等等,Git 也不例外。
版本控制系統可以告訴你每次的改動,比如在第 4 行加了一個備註 “SuXing”,在第 8 行刪了一個單詞 “Windows”。
而圖片、影片這些二進位制檔案,雖然也能由版本控制系統管理,但沒法跟蹤檔案的變化,只能把二進位制檔案每次改動串起來,也就是隻知道圖片從 100KB 改成了 120KB ,但到底改了啥,版本控制系統不知道,也沒法知道(咱也不敢問,哈哈)
像前面說到的 Microsoft 的Word,Excel 格式都是二進位制格式,因此,版本控制系統是沒法跟蹤Word,Excel 檔案的改動,前面舉的例子只是為了演示,如果要真正使用版本控制系統,就要以純文字方式編寫檔案。
因為文字是有編碼的,比如中文有常用的 GBK 編碼,如果沒有歷史遺留問題,強烈建議使用標準的UTF-8 編碼,所有語言使用同一種編碼,既沒有衝突,又被所有平臺所支援。
你的問題得到解決了嗎?歡迎在評論區留言。
贈人玫瑰,手有餘香,如果覺得文章不錯,希望可以給個一鍵三連,感謝。
技術是一點一點積累的,大神也不是一天就可以達到的。原地不動就是退步,所以每天進步一點點。
結束語
最後,附上一句格言:"好學若飢,謙卑若愚",望共勉。
- 【Flutter 問題系列第 67 篇】在 Flutter 中使用 Get 外掛在 Dialog 彈窗中不能二次跳轉路由問題的解決方案
- 【Flutter 問題系列第 66 篇】本地存在多個 Flutter SDK 版本時,專案前後因引用了不同版本的 SDK 導致部分包檔案報錯的解決方案
- 【Git 教程系列第 8 篇】將工作區的改動“新增“到暫存區 — git add
- 【Flutter 問題系列第 28 篇】Container 巢狀 Container 時,明明指定了子元件的寬高,為什麼不起作用 ?
- 【Flutter 問題系列第 5 篇】Flutter 去除 ListView 元件中的藍色回彈效果
- 【Flutter 問題系列第 3 篇】如何去除 Flutter 中點選按鈕、底部導航欄的水波紋效果