#?git版本管理
##?git工具的作用
了解git工具州疾,首先要了解它的作用,進而了解如何去使用這個工具揪垄。
git主要有三個作用
+?版本迭代
+?遠程倉庫
+?分支管理
##?場景描述
簡單來講穷吮,我有一個項目,這個項目可以是代碼饥努,也可以是其他的捡鱼,甚至可以是一首詩(即一個簡單的txt文件)蝉衣。
現(xiàn)在簡化項目內(nèi)容惭婿,我的項目就是在txt文件里寫一首詩。
于是哑蔫,我迅速的完成txt文件的新建溶浴,命名和編輯乍迄,得到了如下的文件:
```
文件名:poem.txt
內(nèi)容:
第一段
第二段
第三段
```
寫完之后我對第二段不滿意,要刪掉戳葵,但是又怕以后后悔就乓,所以只能保留poem.txt同時復制一份poem(1).txt,文件內(nèi)容如下
```
文件名:poem(1).txt
內(nèi)容:
第一段
第三段
```
如果我進行多次類似的修改拱烁,甚至發(fā)給其他人幫我修改生蚁,又想保留之前的內(nèi)容,那么我會有很多類似的txt文件戏自。當某次需要尋找某一個版本的txt時邦投,會發(fā)現(xiàn)已經(jīng)亂了。這時候就需要一個工具可以幫我記錄每次的修改擅笔,幫我回退到我想要的那個版本志衣。這個需求就叫做**版本迭代**。
git就可以實現(xiàn)這個功能猛们。git就類似一個倉庫念脯,通過git新建一個*倉庫*,然后把項目文件放到*倉庫*里面弯淘。每次修改都重新把文件加入到倉庫绿店,倉庫會記錄你本次都對倉庫里的文件做了什么改動,并可以隨時把文件的版本退回到某一次修改的版本庐橙。
我在自己電腦上建了一個倉庫假勿,放進去了一個項目,可是別人想看我寫的詩态鳖,我只能通過復制粘貼給他转培。如果我是一個大詩人,有100000個人想看的寫的詩浆竭,那我一個個的發(fā)給他們就有點麻煩浸须〔沂伲或者我把我寫的詩放在我的硬盤里,如果有一天硬盤壞了羽戒,詩就沒了缤沦。為了解決上述問題虎韵,我可以把我的詩放到“云”上易稠,git同樣支持通過命令上傳到互聯(lián)網(wǎng)上。這就是git的**遠程倉庫**功能包蓝。github就是一個提供遠程倉庫的網(wǎng)站驶社,每個注冊賬號的人都擁有g(shù)ithub提供的遠程倉庫。
有一天测萎,詩歌愛好者杜小甫讀到了我的詩亡电,想和我共同創(chuàng)作,我也認可了他的能力硅瞧,讓他和我一起寫一首詩份乒。但是他直接在我的倉庫里進行詩歌創(chuàng)作,可能會覆蓋掉我寫的內(nèi)容腕唧。于是我讓他在另外一條分支去寫詩或辖,他寫完之后經(jīng)過我的審核才能并入到我的主分支。這就是git的**分支管理**枣接。
##?git命令與使用
windows直接官網(wǎng)下載git?bash?
Linux/mac直接命令行安裝
###?本地倉庫
+?本地倉庫的創(chuàng)建與基本使用
??1.?新建文件夾peom_project颂暇,作為*倉庫*。通過以下命令將peom_project文件夾變成*倉庫*但惶。
????```bash
????cd?/xx/xx/peom_project/?#cd?進入剛才新建的文件夾
????git?init?#將peom_project文件夾創(chuàng)建為新的倉庫耳鸯,創(chuàng)建完成后文件夾中會多一個新的隱藏文件夾.git
????```
??2.?在文件夾下創(chuàng)建新的poem.txt文件,并把我的詩寫在文件里面膀曾。此時县爬,poem.txt并不在倉庫里面,它只是在文件夾里面添谊。需要使用以下命令將該文件加入到git倉庫财喳。
??3.?將文件添加到倉庫
????```bash
????git?add?poem.txt?#?通過add添加文件到暫存區(qū)
????git?commit?-m?"my?poem"?#?通過commit將文件提交到倉庫
????```
????初次使用**git?commit**命令會被告知需要輸入名字和email,此處的姓名和email只是為了標注提交人的身份碉钠,使用**git?config**命令配置好即可纲缓。
????```bash
????git?config?user.name?"mrnext"
????git?config?user.email?"313252625@qq.com"
????```
????需要注意的是通過add只是加入到一個清單里面,并沒有把文件加入到倉庫喊废,通過git?commit會將清單里面的文件一次性加入到倉庫里面祝高。例如,我可以將兩首詩都加入到我的倉庫污筷。
????```bash
????git?add?poem1.txt?#?通過add添加文件到暫存區(qū)
????git?add?poem2.txt
????git?commit?-m?"my?poem?v2"?#?通過commit將文件提交到倉庫?-m?后面跟的字符串為本次提交的備注工闺。
????```
??4.?查看日志文件
????git倉庫會記錄每一次commit的改變乍赫,通過git?log命令去查看這些信息。
????
????可以看出我一共在庫里面提交了2次陆蟆,每次提交的用戶名雷厂,時間和備注信息均會被展示出來。
??5.?作業(yè)
??*?下載git?bash叠殷,使用bash新建一個git倉庫改鲫,在git倉庫里添加一個txt文件
??*?嘗試改動文件,進行第二次提交
??*?了解git?diff的用法