— layout: post title: Git進(jìn)階之路(一) tags: [git] categories: [tools] —
準(zhǔn)備工作
Git客戶(hù)端下載
SourceTree 推薦
TortoiseGit 小烏龜
Git免費(fèi)倉(cāng)庫(kù)
Bitbucket 支持開(kāi)源倉(cāng)庫(kù)及私人倉(cāng)庫(kù) 完全免費(fèi)且沒(méi)有倉(cāng)庫(kù)限制,團(tuán)隊(duì)的話(huà)有團(tuán)隊(duì)人數(shù)限制,關(guān)鍵是私人倉(cāng)庫(kù)免費(fèi)啊,如果私人項(xiàng)目比較多的話(huà)推薦用這個(gè)。
GitHub 支持開(kāi)源倉(cāng)庫(kù)及私人倉(cāng)庫(kù)(私人倉(cāng)庫(kù)收費(fèi)) 如果你開(kāi)源項(xiàng)目比較多,建議選擇這個(gè),私人倉(cāng)庫(kù)的話(huà)是需要收取費(fèi)用的,不過(guò)一個(gè)月也才幾美元,一般賺名聲的話(huà)推薦用這個(gè)。
比較工具(用于解決沖突)
BeyondCompare 推薦
Workshare Compare
UltraCompare Pro
基礎(chǔ)介紹
### 1. Git 與 SVN 區(qū)別點(diǎn)
GIT 是分布式的,SVN 不是。這是 GIT 和其它非分布式的版本控制系統(tǒng),例如 SVN,CVS 等,最核心的區(qū)別。
GIT 把內(nèi)容按元數(shù)據(jù)方式存儲(chǔ),而 SVN 是按文件:所有的資源控制系統(tǒng)都是把文件的元信息隱藏在一個(gè)類(lèi)似 .svn,.cvs等的文件夾里。
GIT 分支和 SVN 的分支不同:分支在 SVN 中一點(diǎn)不特別,就是版本庫(kù)中的另外的一個(gè)目錄。
GIT 沒(méi)有一個(gè)全局的版本號(hào),而 SVN 有, 目前為止這是跟 SVN 相比 GIT 缺少的最大的一個(gè)特征。
GIT 的內(nèi)容完整性要優(yōu)于 SVN 。GIT 的內(nèi)容存儲(chǔ)使用的是 SHA-1 哈希算法,這能確保代碼內(nèi)容的完整性,確保在遇到磁盤(pán)故障和網(wǎng)絡(luò)問(wèn)題時(shí)降低對(duì)版本庫(kù)的破壞。
Git 只適用于文本內(nèi)容管理,對(duì)于二進(jìn)制文件無(wú)法直接查看修改的內(nèi)容對(duì)比,不太適合用于管理二進(jìn)制文件內(nèi)容。
2. 工作區(qū)(Working Directory)和版本庫(kù)(Repository)
?

說(shuō)明:
工作區(qū)就是創(chuàng)建倉(cāng)庫(kù)的文件夾如( learngit 文件夾就是一個(gè)工作區(qū))
版本庫(kù)就是工作區(qū)的隱藏目錄 .git ,版本庫(kù)中有暫存區(qū)( stage / index )和分支( master )
git add 實(shí)際是把文件添加到暫存區(qū), git commit 把暫存區(qū)的內(nèi)容提交到當(dāng)前分支
好了,上面一些官方介紹完畢(蝦扯淡),下面開(kāi)始進(jìn)入正題(基于 IDE 傻瓜式操作,沒(méi)有命令行教學(xué))。
基本使用
創(chuàng)建版本庫(kù) git init
創(chuàng)建 本地/服務(wù)器 git 倉(cāng)庫(kù)文件夾,名為:** learngit **


添加文件 git add 文件全名包括后綴
將文件添加到暫存區(qū),已添加到暫存區(qū)的文件會(huì)在 已暫存文件 區(qū)域顯示,且文件會(huì)變成綠色,未暫存的文件會(huì)在 未暫存的文件 區(qū)域顯示,如果要把未暫存的文件添加到已暫存文件直接點(diǎn)下前面的勾選框即可。

提交文件 git commit -m "commit message"
將已緩存的文件提交到本地倉(cāng)庫(kù)并填寫(xiě)本次提交信息log

關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù) git remote add origin xxx.git
將本地倉(cāng)庫(kù)于遠(yuǎn)程服務(wù)器倉(cāng)庫(kù)關(guān)聯(lián)


推送文件 git push -u origin master
將本地的修改提交推送到遠(yuǎn)程服務(wù)器倉(cāng)庫(kù)

拉取服務(wù)器提交 git pull origin master
將服務(wù)器上別人的提交拉取到本地

進(jìn)階
分支管理
分支創(chuàng)建 git branch 分支名