git版本控制
引題:隨著項目越來越大,出現(xiàn)以下問題:
1.項目本來正確,加了些新功能或改bug,結(jié)果不知覺影響到其他功能項目無法運行,再往回改問題有越來越多。
2.無人查看較早歷史版本。
3.多人協(xié)作,每個人的代碼不完全一致,項目經(jīng)理合并代碼同時容易出錯。
主流工具:
SVN:
優(yōu)點:(有點像自動同步功能的百度網(wǎng)盤),服務(wù)器上維護(hù)共享文件,客戶端下載(checkout檢出);客戶端可以修改代碼后在commit提交,也可以從服務(wù)器update更新最新代碼。SVN前些年、java項目,早期公司必用,但被GIT漸漸取代。
缺點:1>有代碼版本控制功能但因為難沒人使用,大家把它當(dāng)成網(wǎng)盤使用。例如,服務(wù)器最開始共享代碼v1,分發(fā)給幾個程序員,然后程序員A開發(fā)了一個功能,并提交v2.后面提交功能的人由于代碼環(huán)境以變,自己開發(fā)的功能還需要費時調(diào)整。
2>星星拓?fù)?,服?wù)器一旦奔潰,依賴服務(wù)器的客戶端如果沒有備份資料就丟失了。
GIT:避免了以上缺點,現(xiàn)在流行使用。相關(guān)生態(tài)GitHub也非常流行。每一個代碼提交的時間點都會打一個標(biāo)簽,每一個程序員在開發(fā)后提交時都會檢查于上一個最新版本的異同。每一個版本變更。點對點網(wǎng)狀拓?fù)洌渲幸粋€出現(xiàn)問題,可以從其他電腦恢復(fù)。
git
安裝
官網(wǎng)下載,安裝。向?qū)婕暗拿~在學(xué)習(xí)過Linux后會理解,無關(guān)緊要,全部保持默認(rèn)點擊“next”,
基本概念和相關(guān)命令:
1.cd 項目根目錄
2.git init :初始化git倉庫,生成.git隱藏文件夾,負(fù)責(zé)跟蹤項目文件變更。
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

