git和svn有什麼區別?html
svn:git
系統特色:github
1).集中式版本控制系統(存在一箇中央版本庫,全部開發人員所使用的代碼都是來源於版本庫,提交代碼也是這個中央版本庫)windows
2).企業內部並行集中開發服務器
3).windows系統上開發推薦使用網絡
4).克隆一個擁有一萬個提交(commit)分佈式
5).五個分支,每一個分支有大約1500個文件,用時將近一個小時svn
版本控制:gitlab
1)保存先後變化的差別數據,做爲版本控制fetch
2)版本控制,每次都會產生一個高版本(svn的全局版本號,這是svn一個較大的特色,git是hash值)
工做流程:
1)每次更改文件都得update操做,有的時候修改過程當中這個文件有更新,commit不會成功
2)有衝突,會打斷提交動做(衝突解析是一個提交速度的競賽額競賽:手快者,先提交,平安無事;手慢者,後提交,可能遇到麻煩的衝突解決)
內存管理:svn讀中文支持好,操做簡單,適合於大衆
git
系統特色:
1).分佈式系統(也就是每一個開發人員從中心版本庫/服務器上chect out代碼後會在本身的機器上克隆一個本身的版本庫。能夠這樣說,若是你被困在一個不能鏈接網絡的地方時,你仍然可以提交文件,查看歷史版本記錄,建立項 目分支等。)
2).開源項目開發
3).mac,Linux系統上開發推薦使用
4).克隆一個擁有將近一萬個提交(commit),五個分支,每一個分支有大約1500個文件,用時1分鐘
版本控制:
1.git只關心文件數據的總體發生變化,更像是把文件作快照,文件沒有改變時,分支只想這個文件的指針不會改變,文件發生改變,指針指向新版本
2. 40 位長的哈希值做爲版本號,沒有前後之分
3.git rebase操做能夠更好的保持提交記錄的整潔
工做流程:
1.開始工做前進行fetch操做,完成開發工做後push操做,有衝突解決衝突
2.git的提交過程不會被打斷,有衝突會標記衝突文件
3.gitflow流程(經典)
管理平臺:
gitlab,github
ps:git的基本操做
本地:
1.git init初始化一個本地倉庫
2.git add 文件名 (添加文件到倉庫)
3.git commit -m "這裏是註釋"(將add的文件添加註釋而且提交到代碼倉庫)
PS:Git操做區域 Git三個區域:工做區(開發修改代碼區域)、暫存區(add提交後)、歷史區(保存各個版本區域)(commit後)
4.git status查看當前倉庫狀態。會提示哪些文件發生修改,哪些須要add&commit
回退版本:git reset -hard HEAD~5(回退5個版本)
遠程:(若是在遠程生成了readme,在本地沒有,要先pull一下)
git remote add (將本地倉庫提交到遠程倉庫)
git push -u origin master(將本地master分支提交到遠程的master分支,並關聯起來)
git pull origin master(push前先將遠程repository修改pull下來)
轉載於:https://www.cnblogs.com/dazhidacheng/p/7478438.html