創(chuàng)建git版本庫

版本庫又名倉庫,可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。

首先,選擇一個合適的地方,創(chuàng)建一個空目錄:
$ mkdir gitTest
$ cd gitTest
$ pwd
/Users/gitTest

pwd命令用于顯示當前目錄。

如果你使用Windows系統(tǒng),為了避免遇到各種莫名其妙的問題,請確保目錄名(包括父目錄)不包含中文。

第二步,通過git init命令把這個目錄變成Git可以管理的倉庫:
$ git init
Initialized empty Git repository in /Users/gitTest/.git/

瞬間Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty Git repository),可以發(fā)現(xiàn)當前目錄下多了一個.git的目錄,這個目錄是Git來跟蹤管理版本庫的。(千萬不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫給破壞了。)
如果你沒有看到.git目錄,那是因為這個目錄默認是隱藏的,用ls -ah命令就可以看見。

把文件添加到版本庫

所有的版本控制系統(tǒng),其實只能跟蹤文本文件的改動,比如TXT文件,網(wǎng)頁,所有的程序代碼等等,Git也不例外。版本控制系統(tǒng)可以告訴你每次的改動,比如在第5行加了一個單詞“Linux”,在第8行刪了一個單詞“Windows”。而圖片、視頻這些二進制文件,雖然也能由版本控制系統(tǒng)管理,但沒法跟蹤文件的變化,只能把二進制文件每次改動串起來,也就是只知道圖片從100KB改成了120KB,但到底改了啥,版本控制系統(tǒng)不知道,也沒法知道。
Microsoft的Word格式是二進制格式,因此,版本控制系統(tǒng)是沒法跟蹤Word文件的改動的,前面我們舉的例子只是為了演示,如果要真正使用版本控制系統(tǒng),就要以純文本方式編寫文件。
因為文本是有編碼的,比如中文有常用的GBK編碼,日文有Shift_JIS編碼,如果沒有歷史遺留問題,強烈建議使用標準的UTF-8編碼,所有語言使用同一種編碼,既沒有沖突,又被所有平臺所支持。

使用Windows的童鞋要特別注意:
千萬不要使用Windows自帶的記事本編輯任何文本文件。Microsoft會在每個文件開頭添加一個0xefbbbf(十六進制)的字符,導致很多不可思議的問題,比如,網(wǎng)頁第一行可能會顯示一個“?”,明明正確的程序一編譯就報語法錯誤,等等。建議你下載Notepad++代替記事本,不但功能強大,而且免費!記得把Notepad++的默認編碼設置為UTF-8 without BOM即可。

現(xiàn)在我們編寫一個readme.txt文件,內(nèi)容如下:

Git is a version control system.
Git is free software.

一定要放到gitTest目錄下(子目錄也行),因為這是一個Git倉庫,放到其他地方Git再厲害也找不到這個文件。

第一步,用命令git add告訴Git,把文件添加到倉庫:

$ git add readme.txt
//沒有任何顯示

第二步,用命令git commit告訴Git,把文件提交到倉庫:

$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

簡單解釋一下git commit命令,-m后面輸入的是本次提交的說明,可以輸入任意內(nèi)容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。
git commit命令執(zhí)行成功后會告訴你,1 file changed:1個文件被改動(我們新添加的readme.txt文件);2 insertions:插入了兩行內(nèi)容(readme.txt有兩行內(nèi)容)。
為什么Git添加文件需要add,commit一共兩步呢?因為commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."


注意:
Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有Git為我們自動創(chuàng)建的第一個分支master,以及指向master的一個指針叫HEAD。

因為我們創(chuàng)建Git版本庫時,Git自動為我們創(chuàng)建了唯一一個master分支,所以,git commit就是往master分支上提交更改。

你可以簡單理解為,git add命令實際上就是把要提交的所有修改放到暫存區(qū)(Stage),然后,執(zhí)行g(shù)it commit就可以一次性把暫存區(qū)的所有修改提交到分支。


轉(zhuǎn)載于廖秀峰的官方網(wǎng)站https://www.liaoxuefeng.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,813評論 4 54
  • 晨讀分享:今天學習了愛溝通課程的第八章,對的流程。其中很多觀點對自己觸動很大,印象深刻的主要是這樣兩個方面:...
    開啟暖心之旅閱讀 149評論 0 0
  • 如果思想戴上鐐銬, 僵化拘泥便形成崗哨。 其間盡是受限的制造, 相承的一脈也只可謂狗尾續(xù)貂。 不要慣于畫地為牢, ...
    藝林漫筆閱讀 151評論 0 0
  • 一位新媽媽在懷孕期間,她用100天自學水彩繪畫,成為“水彩插畫師”。成功的在孩子出生前每天完成一張水彩...
    N4160湖南平江孫榮閱讀 373評論 0 2
  • 每聽到《范特西》這張專輯,就會想起那件不堪回首的高中往事…… 01 我生在農(nóng)村,父母是老實巴交的農(nóng)民。理所當然,我...
    支策閱讀 982評論 0 0

友情鏈接更多精彩內(nèi)容