1. 首先安裝完git需要配置你的名字和郵箱
*注意git config命令的--global參數(shù),用了這個(gè)參數(shù)晾腔,表示你這臺(tái)機(jī)器上所有的Git倉(cāng)庫(kù)都會(huì)使用這個(gè)配置,當(dāng)然也可以對(duì)某個(gè)倉(cāng)庫(kù)指定不同的用戶名和Email地址。
2. 進(jìn)入一個(gè)空項(xiàng)目目錄進(jìn)行新建版本倉(cāng)庫(kù)
通過(guò)git init命令把這個(gè)目錄變成Git可以管理的倉(cāng)庫(kù)吞鸭,而且目錄下多了一個(gè).git的目錄,這個(gè)目錄是Git來(lái)跟蹤管理版本庫(kù)的契耿,沒(méi)事千萬(wàn)不要手動(dòng)修改這個(gè)目錄里面的文件瞒大,不然改亂了,就把Git倉(cāng)庫(kù)給破壞了
3. 把某個(gè)文件添加到倉(cāng)庫(kù)中
執(zhí)行g(shù)it add 把readme.txt 文件添加到倉(cāng)庫(kù)中搪桂,注意readme.txt 必須放在上一步空目錄中或子文件夾中透敌,不然添加時(shí)是找不到的
4.? 用命令git commit告訴Git,把文件提交到倉(cāng)庫(kù)
把一個(gè)文件放到倉(cāng)庫(kù)一般就這兩步踢械,先添加到倉(cāng)庫(kù)酗电,在提交。簡(jiǎn)單解釋一下git commit命令内列,-m后面輸入的是本次提交的說(shuō)明撵术,可以輸入任意內(nèi)容,當(dāng)然最好是有意義的话瞧,這樣你就能從歷史記錄里方便地找到改動(dòng)記錄嫩与。嫌麻煩不想輸入-m "xxx"行不行寝姿?確實(shí)有辦法可以這么干,但是強(qiáng)烈不建議你這么干划滋,因?yàn)檩斎胝f(shuō)明對(duì)自己對(duì)別人閱讀都很重要饵筑。實(shí)在不想輸入說(shuō)明的童鞋請(qǐng)自行Google,我不告訴你這個(gè)參數(shù)处坪。
?5. 假如我們修改了readme.txt根资,這個(gè)時(shí)候我們使用git status命令行查看
這時(shí)你就知道git status 命令行是干嘛用的,git status命令可以讓我們時(shí)刻掌握倉(cāng)庫(kù)當(dāng)前的狀態(tài)同窘,上面的命令輸出告訴我們玄帕,readme.txt被修改過(guò)了,但還沒(méi)有準(zhǔn)備提交的修改想邦,但是我們并不能從該命令行中知道到底修改啦那一部分裤纹。這是就用到啦下一步。
6.git dff
git diff顧名思義就是查看difference案狠,顯示的格式正是Unix通用的diff格式服傍,可以從上面的命令輸出看到,我們?cè)诘谝恍刑砑恿艘粋€(gè)distributed單詞骂铁。如果看不懂可以自行百度深究
7.提交修改后的文件和提交新文件是一樣的
? ? ? ?1. 先git add readme.txt 添加修改的文件
? ? ? ?2. 再git commit -m "add distributed" 提交吹零,并添加說(shuō)明"add distributed"方便別人閱讀或自己閱讀。
? ? ? 3. 你可以在中間穿插git status 命令 看看輸出狀態(tài)拉庵,添加完git status一下 灿椅,提交完再git status一下。
8. 查看git倉(cāng)庫(kù)中提交的歷史版本:git log
git log命令顯示從最近到最遠(yuǎn)的提交日志钞支,我們可以看到3次提交茫蛹,最近的一次是append GPL,上一次是add distributed烁挟,最早的一次是wrote a readme file
如果嫌輸出信息太多婴洼,看得眼花繚亂的,可以試試加上--pretty=oneline參數(shù):
需要友情提示的是撼嗓,你看到的一大串類似1094adb...的是commit id(版本號(hào))柬采,和SVN不一樣,Git的commit id不是1且警,2粉捻,3……遞增的數(shù)字,而是一個(gè)SHA1計(jì)算出來(lái)的一個(gè)非常大的數(shù)字斑芜,用十六進(jìn)制表示肩刃,而且你看到的commit id和我的肯定不一樣,以你自己的為準(zhǔn)。為什么commit id需要用這么一大串?dāng)?shù)字表示呢盈包?因?yàn)镚it是分布式的版本控制系統(tǒng)沸呐,后面我們還要研究多人在同一個(gè)版本庫(kù)里工作,如果大家都用1续语,2垂谢,3……作為版本號(hào)厦画,那肯定就沖突了
9.? 把當(dāng)前版本append GPL回退到上一個(gè)版本add distributed疮茄,就可以使用git reset命令:
首先,Git必須知道當(dāng)前版本是哪個(gè)版本根暑,在Git中力试,用HEAD表示當(dāng)前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一樣)排嫌,上一個(gè)版本就是HEAD^畸裳,上上一個(gè)版本就是HEAD^^,當(dāng)然往上100個(gè)版本寫100個(gè)^比較容易數(shù)不過(guò)來(lái)淳地,所以寫成HEAD~100怖糊。--hard參數(shù)有啥意義?這個(gè)后面再講颇象,現(xiàn)在你先放心使用
10. 此時(shí)你用git log 會(huì)發(fā)現(xiàn)最新的版本沒(méi)有伍伤,那怎么跳到append GPL那個(gè)版本呢?也是git reset 不過(guò)要附帶版本號(hào)(版本號(hào)不用寫全前幾位即可)
11. 若果此時(shí)你并不知道append GPL 的版本號(hào)遣钳,怎么辦呢扰魂?或者說(shuō)你已經(jīng)關(guān)閉啦命令窗口,這時(shí)需使用git reflog來(lái)記錄你輸出的每一條指令
12.? git checkout -- file可以丟棄工作區(qū)的修改:
命令git checkout -- readme.txt意思就是蕴茴,把readme.txt文件在工作區(qū)的修改全部撤銷劝评,這里有兩種情況:
一種是readme.txt自修改后還沒(méi)有被放到暫存區(qū),現(xiàn)在倦淀,撤銷修改就回到和版本庫(kù)一模一樣的狀態(tài)蒋畜;
一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改撞叽,現(xiàn)在姻成,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。
總之能扒,就是讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)佣渴。