git,一款免費(fèi)、開源的分布式版本控制工具,在近幾年來,變得非常流行,越來越多工程師和項(xiàng)目都在使用,下面是關(guān)于git的一些概念小結(jié)
倉庫(repository)
在git中,倉庫的概念,簡單地理解,就是一個需要進(jìn)行版本控制的文件目錄。這個目錄所有的內(nèi)容變動都可以通過git進(jìn)行管理。
那么怎么知道這個目錄是不是git的倉庫呢?
只要看看當(dāng)前目錄有沒有一個“.git”的文件夾,如果有,這里面會存放當(dāng)前目錄所有的版本信息,更新記錄,以及git進(jìn)行倉庫管理的相關(guān)信息。
本地倉庫
由于git的分布式特性,所以本地,即自己操作的電腦,也能作為版本管理的個體。我們可以本地對倉庫進(jìn)行版本管理,而不需要服務(wù)器的支持,即可以離線版本管理,像svn就不能離線版本管理,需要服務(wù)器支持才能完成版本管理。
遠(yuǎn)程倉庫(remote)
簡單地說,是一個能提供版本控制的服務(wù)器,用于多人協(xié)作完成一個項(xiàng)目。這個項(xiàng)目里的每個人在本地倉庫完成的改動,都可以通過遠(yuǎn)程倉庫進(jìn)行同步,從而各自的改動能夠被其他人獲取到。
基于git的分布式特使,每一個本地倉庫是可以關(guān)聯(lián)多個遠(yuǎn)程倉庫的。
git的分布式特性
怎么理解git的分布式特性?

如上圖,可以簡單地理解成:
一個本地倉庫(用戶電腦)可以關(guān)聯(lián)操作多個遠(yuǎn)程倉庫,每個遠(yuǎn)程倉庫可以接受多個本地倉庫的同步請求。
提交(commit)
提交,其實(shí)就是每一次變動的內(nèi)容,也稱作每一個版本,是git版本管理的最小可操作單位。
每一次提交都會產(chǎn)生一個唯一的版本號,有了這個版本號,我們就能讓當(dāng)前目錄回到這個版本對應(yīng)的提交那時(shí)候的樣子了。
分支(branch)
什么是分支? 每一個分支,我們可以理解成是一條線,每條線都一定會有一個起點(diǎn),但是不一定會有終點(diǎn)。這些線有可能會交集,也有可能是平行的關(guān)系。
每一個分支,都是由很多的提交組成;每一個倉庫里,會有很多分支組成。
同時(shí),分支也有本地和遠(yuǎn)程之分。有一些分支,像只是個人自己測試或者試驗(yàn)用的,與你協(xié)作的人不需要看到或者用到,不用同步給遠(yuǎn)程倉庫,這種分支,就是本地分支。
在遠(yuǎn)程倉庫的分支,就是遠(yuǎn)程分支了。
合并(merge)
合并一般是指兩個分支的內(nèi)容融合到一個分支的動作,常見使用場景有本地倉庫中的兩個分支合在一起,遠(yuǎn)程倉庫本地倉庫同名的一個分支合在一起。
合并對于一個多人項(xiàng)目開發(fā)過程來說,是必不可少的動作,同時(shí)合并會經(jīng)常產(chǎn)生出沖突。
沖突(conflict)
當(dāng)兩個人修改相同的文件,或者你在兩個分支修改相同的文件,在合并變動的時(shí)候,就會出現(xiàn)沖突。
沖突,是需要去解決的合并問題。如果不解決沖突,就無法進(jìn)行合并。
最后
以上就是一些個人自己總結(jié)關(guān)于git的一些概念理解,希望對看到的各位有幫助;如寫得不好,也請多多包涵。