前言
可跟蹤改動內容的文件有哪些?
- 所有的版本控制系統,跟蹤的是什么?——跟蹤文本文件的改動(TXT、HTML)
- 版本控制系統可以告訴你每次對文本的改動,比如在第5行增加/刪除了一個單詞“Linux”,
- 所以圖片、視頻、word這些二進制文件,雖然也能由版本控制系統管理,但沒法跟蹤文件的變化。例如只知道圖片大小從100KB改成了120KB,但到底改了啥是不知道的
編碼選擇
- 建議使用標准的UTF-8編碼,所有語言使用同一種編碼,既沒有沖突,又被所有平台所支持。
把文件添加到倉庫
倉庫
倉庫即版本庫,repository,也就是一個目錄,這個目錄里面的所有文件都可以被Git管理起來。
作用:跟蹤每個文件的修改、刪除,以便任何時刻都可以追蹤改動,甚至在必要的時候可以“還原”。
0、創建一個倉庫並初始化
先在一個文件夾內單擊右鍵,選擇“Git Bash”
$ mkdir learngit
$ cd learngit
$ git init //初始化這個倉庫learngit
這樣就成功創建了一個.git
的目錄(這個目錄是Git來跟蹤管理版本庫的,切勿輕易修改)
如果你沒有看到.git
目錄,那是因為這個目錄默認是隱藏的,用ls -ah
命令就可以看見。
2、把文件添加到本地倉庫:
$ git add readme.txt
如果是一個文件夾,則輸入
git add
3、用命令git commit
告訴Git,把文件提交到倉庫:
$ git commit -m "This is a commit: first try"
提交完成
git push -u origin master
使用Windows的童鞋要特別注意:
- 千萬不要使用Windows自帶的記事本編輯任何文本文件。
- 建議使用Visual Studio Code代替記事本,不但功能強大,而且免費!
- 原因是Microsoft開發記事本的團隊使用了一個非常弱智的行為來保存UTF-8編碼的文件,他們自作聰明地在每個文件開頭添加了0xefbbbf(十六進制)的字符,你會遇到很多不可思議的問題。
- 比如,網頁第一行可能會顯示一個“?”,明明正確的程序一編譯就報語法錯誤,等等,都是由記事本的弱智行為帶來的。
工作區、暫存區
工作區(Working Directory)
- 就是你在電腦里能看到的目錄,比如我的
learngit
文件夾就是一個工作區:
版本庫(Repository)
工作區有一個隱藏目錄.git
,這個不算工作區,而是Git的版本庫。
Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自動創建的第一個分支master
,以及指向master
的一個指針叫HEAD
。
前面講了我們把文件往Git版本庫里添加的時候,是分兩步執行的:
- 第一步是用
git add
把文件添加進去,實際上就是把文件修改添加到暫存區; - 第二步是用
git commit
提交更改,實際上就是把暫存區的所有內容提交到當前分支。
你可以簡單理解為,需要提交的文件修改通通放到暫存區,然后,一次性提交暫存區的所有修改。
過程,例:
- 我們先在工作區編輯兩個文件
- 通過
git add
添加到版本庫的暫存區(Stage) - 現在,暫存區的狀態就變成這樣了:
- 執行
git commit
就可以一次性把暫存區的所有修改提交到分支。 - 一旦提交后,如果你又沒有對工作區做任何修改,那么工作區就是“干凈”的:
管理修改小提示
第一次修改 -> git add
-> 第二次修改 -> git add
-> git commit
- 第一次修改一個文件
vim test.txt
git add
,放到暫存區- 第二次修改這個文件
vim test.txt
git commit
,上傳到分支- 結果是只上傳了第一次的修改文件。
- 即:沒有被
git add
到暫存區的文件不會被git commit
git初嘗試
https://blog.csdn.net/ywsydwsbn/article/details/106427905#43_github_179
git菜鳥指南
https://www.runoob.com/git/git-workspace-index-repo.html