git版本控制
引題:隨著項(xiàng)目越來越大冰更,出現(xiàn)以下問題:
1.項(xiàng)目本來正確贰健,加了些新功能或改bug,結(jié)果不知覺影響到其他功能項(xiàng)目無法運(yùn)行刚操,再往回改問題有越來越多闸翅。
2.無人查看較早歷史版本。
3.多人協(xié)作菊霜,每個人的代碼不完全一致坚冀,項(xiàng)目經(jīng)理合并代碼同時容易出錯。
主流工具:
SVN:
優(yōu)點(diǎn):(有點(diǎn)像自動同步功能的百度網(wǎng)盤)鉴逞,服務(wù)器上維護(hù)共享文件记某,客戶端下載(checkout檢出);客戶端可以修改代碼后在commit提交构捡,也可以從服務(wù)器update更新最新代碼液南。SVN前些年、java項(xiàng)目勾徽,早期公司必用滑凉,但被GIT漸漸取代。
缺點(diǎn):1>有代碼版本控制功能但因?yàn)殡y沒人使用喘帚,大家把它當(dāng)成網(wǎng)盤使用畅姊。例如,服務(wù)器最開始共享代碼v1啥辨,分發(fā)給幾個程序員,然后程序員A開發(fā)了一個功能盯腌,并提交v2.后面提交功能的人由于代碼環(huán)境以變溉知,自己開發(fā)的功能還需要費(fèi)時調(diào)整。
2>星星拓?fù)渫蠊唬?wù)器一旦奔潰级乍,依賴服務(wù)器的客戶端如果沒有備份資料就丟失了。
GIT:避免了以上缺點(diǎn)帚湘,現(xiàn)在流行使用玫荣。相關(guān)生態(tài)GitHub也非常流行。每一個代碼提交的時間點(diǎn)都會打一個標(biāo)簽大诸,每一個程序員在開發(fā)后提交時都會檢查于上一個最新版本的異同捅厂。每一個版本變更。點(diǎn)對點(diǎn)網(wǎng)狀拓?fù)渥嗜幔渲幸粋€出現(xiàn)問題焙贷,可以從其他電腦恢復(fù)。
git
安裝
官網(wǎng)下載贿堰,安裝辙芍。向?qū)婕暗拿~在學(xué)習(xí)過Linux后會理解,無關(guān)緊要,全部保持默認(rèn)點(diǎn)擊“next”故硅,
基本概念和相關(guān)命令:
1.cd 項(xiàng)目根目錄
2.git init
:初始化git倉庫庶灿,生成.git隱藏文件夾,負(fù)責(zé)跟蹤項(xiàng)目文件變更往踢。
3.git aad [文件名]
: 把一個文件添加到“暫存區(qū)”,未添加的文件不會被跟蹤捐晶。git相比svn菲语、網(wǎng)盤多的概念就是“暫存區(qū)”。
不太適合跟蹤的文件有:測試語法的小腳本惑灵;依賴包山上;數(shù)據(jù)庫。
一個一個文件add太麻煩英支,git add .
跟蹤所有文件佩憾。
排除跟蹤的文件可以在.gitignore中設(shè)置。
-
git commit -m "提交時描述信息"
干花。提交就是快照妄帘。
靠head指針指向時間來管理不同時候提交的版本。每一次提交編一個唯一hash字符串標(biāo)識池凄。提交信息包含提交人和提交時間抡驼。 -
git log
查看文件變更狀態(tài)和提交歷史。 - (第一次使用git時設(shè)置)
git config --global user.email "你的郵箱"
git config --global user.name "你的名字"
7.` git status 查看文件是否跟蹤肿仑,是否變更致盟。 -
git reset --hard [提交id]
,版本回退
圖片.png
提交時除了未跟蹤的文件之外沒有添加任何內(nèi)容(使用“git add”到track).png