git 安裝
??主要介紹linux系統(tǒng)的安裝,因?yàn)閣indows安裝完了以后,如果使用命令行工具git bash,其命令跟linux一樣寞缝。所以就不介紹了。這里建議使用命令行工具仰泻,可以更好的幫助自己更好的理解git的原理荆陆。
??用Debian或Ubuntu Linux,通過一條sudo apt-get install git就可以直接完成Git的安裝集侯。用centos被啼,同樣是一條命令 sudo yum install git 搞定。
創(chuàng)建版本庫
??什么是版本庫呢棠枉?版本庫又名倉庫浓体,英文名repository,你可以簡單理解成一個(gè)目錄辈讶,這個(gè)目錄里面的所有文件都可以被Git管理起來命浴,每個(gè)文件的修改、刪除贱除,Git都能跟蹤生闲,以便任何時(shí)刻都可以追蹤歷史,或者在將來某個(gè)時(shí)刻可以“還原”月幌。創(chuàng)建一個(gè)版本庫非常簡單:
首先碍讯,選擇一個(gè)合適的地方,創(chuàng)建一個(gè)空目錄(learngit):
$ mkdir learngit
$ cd learngit
$ pwd
/home/yeren/learngit
然后飞醉,通過git init命令把這個(gè)目錄變成Git可以管理的倉庫:
$ git init
Initialized empty Git repository in /home/yeren/learngit/.git/
??瞬間Git就把倉庫建好了冲茸,而且告訴你是一個(gè)空的倉庫(empty Git repository),細(xì)心的讀者可以發(fā)現(xiàn)當(dāng)前目錄下多了一個(gè).git的目錄缅帘,這個(gè)目錄是Git來跟蹤管理版本庫的轴术,沒事千萬不要手動(dòng)修改這個(gè)目錄里面的文件,不然改亂了钦无,就把Git倉庫給破壞了逗栽。如果你沒有看到.git目錄,那是因?yàn)檫@個(gè)目錄默認(rèn)是隱藏的失暂,用ll -a命令就可以看見彼宠。
$cd .git
$ls
branches config description HEAD hooks info objects refs
其次,把文件添加到版本庫
??首先這里再明確一下弟塞,所有的版本控制系統(tǒng)凭峡,其實(shí)只能跟蹤文本文件的改動(dòng),比如TXT文件决记,網(wǎng)頁摧冀,所有的程序代碼等等,Git也不例外。版本控制系統(tǒng)可以告訴你每次的改動(dòng)索昂,比如在第5行加了一個(gè)單詞“Linux”建车,在第8行刪了一個(gè)單詞“Windows”。而圖片椒惨、視頻這些二進(jìn)制文件缤至,雖然也能由版本控制系統(tǒng)管理,但沒法跟蹤文件的變化康谆,只能把二進(jìn)制文件每次改動(dòng)串起來领斥,也就是只知道圖片從100KB改成了120KB,但到底改了啥秉宿,版本控制系統(tǒng)不知道戒突,也沒法知道。不幸的是描睦,Microsoft的Word格式是二進(jìn)制格式膊存,因此,版本控制系統(tǒng)是沒法跟蹤Word文件的改動(dòng)的忱叭,前面我們舉的例子只是為了演示隔崎,如果要真正使用版本控制系統(tǒng),就要以純文本方式編寫文件韵丑。
??因?yàn)槲谋臼怯芯幋a的爵卒,比如中文有常用的GBK編碼,日文有Shift_JIS編碼撵彻,如果沒有歷史遺留問題钓株,強(qiáng)烈建議使用標(biāo)準(zhǔn)的UTF-8編碼,所有語言使用同一種編碼陌僵,既沒有沖突轴合,又被所有平臺(tái)所支持。
最后碗短,編寫文件
??現(xiàn)在我們編寫一個(gè)readme.txt文件受葛,內(nèi)容如下:
Git is a version control system.
Git is free software.
??一定要放到learngit目錄下(子目錄也行),因?yàn)檫@是一個(gè)Git倉庫偎谁,放到其他地方Git再厲害也找不到這個(gè)文件总滩。
第一,用命令git add告訴Git巡雨,把文件添加到倉庫:
$ git add readme.txt
第二步闰渔,用命令git commit告訴Git,把文件提交到倉庫:
$ git commit-m "wrote a readme file"
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident name (for <yeren@VM_0_5_centos.(none)>) not allowed
提示我們需要設(shè)置這個(gè)倉庫的認(rèn)證信息铐望,來確認(rèn)我們是誰澜建!
$ git config --global user.name "yeren"
$ git config --global user.email "yeren@example.com"
再一次操作git commit
$ git commit-m "wrote a readme file"
[master (root-commit) cbce962] wrote readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
??簡單解釋一下git commit命令向挖,-m后面輸入的是本次提交的說明蝌以,可以輸入任意內(nèi)容炕舵,當(dāng)然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動(dòng)記錄跟畅。
??git commit命令執(zhí)行成功后會(huì)告訴你咽筋,1個(gè)文件被改動(dòng)(我們新添加的readme.txt文件),插入了兩行內(nèi)容(readme.txt有兩行內(nèi)容)徊件。
??為什么Git添加文件需要add奸攻,commit一共兩步呢?因?yàn)閏ommit可以一次提交很多文件虱痕,所以你可以多次add不同的文件睹耐,比如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."