vivo面試學習3(git和svn的區別)

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

相關文章
相關標籤/搜索