從svn遷移到git

我使用了十幾年的svn贱鄙,然而現(xiàn)在我轉(zhuǎn)投了git的懷抱~

關(guān)于svn和git的使用

我不會在這里講如何使用svn和git筛峭,因為網(wǎng)上已經(jīng)有大量的文章詳細(xì)講解如何使用它們喳篇。要注意的是svn和git有很多不同的軟件可以選擇迅矛。每種軟件的使用習(xí)慣都有點不同型宝。學(xué)習(xí)使用版本管理系統(tǒng)會有一些成本,但一旦你掌握了如何使用它們你會發(fā)現(xiàn)它對你的幫助很大捂襟。

SVN :windows系統(tǒng)推薦使用 TortoiseSVN 咬腕,蘋果系統(tǒng)推薦使用 Cornerstone

Git :windows系統(tǒng)推薦使用 TortoiseGit ,蘋果系統(tǒng)推薦使用 Tower

下面就說說為何我從svn遷移到git

誠然svn是一個很不錯的系統(tǒng)葬荷。我有無數(shù)個項目使用它郎汪。包括之前工作的公司和現(xiàn)在我自己的團(tuán)隊。但是git有很多優(yōu)秀的地方填補了svn功能空缺也解決了很多svn使用上的問題闯狱。

當(dāng)沒有網(wǎng)絡(luò)的時候

有很多次我外出的時候需要修改一些代碼,而且有時候咖啡廳的wifi并不好或者所處的地方根本沒有網(wǎng)絡(luò)抛计。這個時候我會像沒有版本管理系統(tǒng)一樣把準(zhǔn)備要修改的文件復(fù)制一份出來保存然后再開始工作哄孤。這個就是svn最大的問題,如果你斷網(wǎng)了吹截,你就不能使用版本管理系統(tǒng)了瘦陈。

這是由于svn的版本庫存只有一個而且存放在服務(wù)器上。而git的版本庫概念和svn很不一樣波俄。你可以理解為在服務(wù)器上依然有一個集中了所有東西的版本庫晨逝。同時,在你的電腦和其他使用這個項目的成員的電腦里都有一個獨立的版本庫懦铺。這樣的好處就是即使沒有網(wǎng)絡(luò)我也可以放心的在本地修改文件捉貌,可以使用版本管理帶來的各種好處。當(dāng)我需要把修改內(nèi)容上傳到服務(wù)器的時候我只需要把本地的版本庫同步到服務(wù)器的版本庫上。

當(dāng)你需要修改一個項目但又不想影響現(xiàn)在項目的內(nèi)容

在版本控制系統(tǒng)里面你需要通過分支來實現(xiàn)趁窃。然而svn的分支很坑爹牧挣。它會在你原有的工程里復(fù)制你需要分支的文件夾然后改名。對你沒看錯醒陆。你的工程突然就多了一個文件夾瀑构,而且當(dāng)你分支很多的時候各種文件夾就到處飛了。在git里面分支是基于整個工程的刨摩。它不會新建新的文件夾來存儲分支的內(nèi)容而是使用類似快照的方式寺晌。

例如你項目有文件夾 a ,在svn里面創(chuàng)建分支后你的項目是這樣的:a a1 a2 a3 a4 a5澡刹。不管你分支里面是否有修改內(nèi)容呻征,即使什么修改都沒有,每創(chuàng)建一個分支都會復(fù)制一份文件夾像屋。在git里面創(chuàng)建分支之后你的項目是這樣的 a 怕犁。對,還是你原來的文件夾己莺。當(dāng)你切換分支之后a會變成a1奏甫。在git里面不用擔(dān)心在一個分支里面修改會影響其他的分支,它們是獨立的凌受。

如果上傳了錯的內(nèi)容

在svn里面如果你上傳了錯的內(nèi)容阵子,或者你后悔某次提交的內(nèi)容。不好意思胜蛉,你只能再提交一次新的內(nèi)容上去挠进。svn會記錄每一次修改而且是不可逆的。而且因為svn只有一個在服務(wù)器上的公共版本庫誊册,所以如果多人協(xié)作開發(fā)一個項目领突,這個問題會是很大的麻煩。如果有人剛好上傳了有問題的內(nèi)容而其他成員又剛好更新了一次案怯。這個時候有問題的內(nèi)容就會擴(kuò)散到其他人手中君旦。如果負(fù)責(zé)人修改時間長,所有人都需要回滾到上一個版本再開發(fā)嘲碱,不過通常這樣會帶來更多的版本沖突問題金砍。或者有人使用上一個版本的內(nèi)容重新提交了一個版本讓大家更新麦锯。這種方法大家會很開心恕稠。但修改問題的負(fù)責(zé)人會遇到版本沖突問題。如果負(fù)責(zé)人修改時間短扶欣,那么大家可能停下來喝杯咖啡等他修改好上傳大家再下載一遍鹅巍。

在git里面每個人的電腦里都會有一個獨立的版本庫千扶。我是指每個人的電腦里的每個項目都有一個本地的獨立版本庫。一般你需要先把修改提交到本地的版本庫確認(rèn)無誤之后再同步到服務(wù)器昆著。如果你發(fā)現(xiàn)某次提交有問題县貌,你可以在本地庫里刪除這次修改。在你最終上傳服務(wù)器之前你的修改不會影響其他人凑懂。

發(fā)現(xiàn)關(guān)注的點么煤痕?git可以讓你使用版本管理的特性而無需擔(dān)心影響其他人的工作。

關(guān)于多項目管理

一般情況下一個團(tuán)隊會有一個svn庫接谨。在這個庫里面使用文件夾區(qū)分項目摆碉。文件夾的管理方式每間公司都不一樣。svn的管理員會給每個成員對應(yīng)每個目錄分配權(quán)限脓豪。也就是誰可以訪問什么目錄不能訪問什么目錄巷帝。如果svn穩(wěn)定的話這樣有個好處,就是所有的項目都在一個地方管理扫夜。為何我說穩(wěn)定問題呢楞泼?svn的服務(wù)端是很穩(wěn)定的至少我用svn這十幾年沒有遇到過一次問題。但svn的客戶端總有各種各樣的原因?qū)е履愕墓ぷ髂夸洷罎⒌趔源场H绻闵暇W(wǎng)找相關(guān)的內(nèi)容你會發(fā)現(xiàn)很多關(guān)于svn工作目錄無法被svn識別堕阔,或者工作目錄無法更新和提交等問題。解決方法可以很直接颗味,直接刪除原有的工作目錄重新checkout一次服務(wù)器上的內(nèi)容就行了超陆。如果你剛好遇到本地修改了東西沒有提交,你就需要把你修改過的文件先保存出來浦马。重點來了时呀,如果你修改的東西很多脐区,這個時候沒有svn提示你哪些文件被修改了区岗。你要把這些文件找出來會是一件很痛苦的事情。我就遇到過很多次這樣問題呕屎。

為何不能每一個項目一個svn版本庫磺陡?因為那樣的話你需要管理員為每個庫重新配置你們的用戶名密碼以及權(quán)限瞧预。當(dāng)然了你其實也可以不checkout整個svn。你可以把svn里面項目的目錄一個個獨立的checkout下來仅政。

如果你使用github或者gitlab這種管理系統(tǒng)。每個項目在服務(wù)器上都會是一個獨立的版本庫盆驹。

關(guān)于版本庫遷移

如果你使用svn圆丹,當(dāng)你需要切換當(dāng)前電腦里面的項目到另一個服務(wù)器上。你需要先把原有的項目導(dǎo)出一份不帶svn信息的版本躯喇。然后把項目放到新服務(wù)器checkout的工作目錄里上傳辫封。這個時候你會發(fā)現(xiàn)項目雖然遷移到了新的服務(wù)器硝枉。但所有之前到版本信息都丟失了。新的服務(wù)器會認(rèn)為你是一個新添加的工程倦微,沒有歷史記錄妻味。

如果你使用git。你只需要在原有的項目里添加一個新的遠(yuǎn)端服務(wù)器然后提交上去欣福。是的你沒看錯责球,git支持多個遠(yuǎn)端服務(wù)器。經(jīng)常一種用法是你checkout了a服務(wù)器上的項目然后把它傳到自己的b服務(wù)器拓劝。你自己新的修改假設(shè)都傳到b服務(wù)器雏逾。a服務(wù)器上的項目可能會時不時更新。你可以從a上更新新的內(nèi)容郑临。然后把合并的修改再傳回b栖博。當(dāng)然如果有需要并且你有a服務(wù)器的上傳權(quán)限,你可以把內(nèi)容傳到a服務(wù)器上厢洞。

可以看到git處理多個遠(yuǎn)端版本庫的方式很自由而且很優(yōu)雅仇让。重點是,你所有的版本修改記錄都好好的呆在那躺翻。

今天先說這么多丧叽,之后有其他內(nèi)容再更新上來。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末获枝,一起剝皮案震驚了整個濱河市蠢正,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌省店,老刑警劉巖嚣崭,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異懦傍,居然都是意外死亡雹舀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門粗俱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來说榆,“玉大人,你說我怎么就攤上這事寸认∏┎疲” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵偏塞,是天一觀的道長唱蒸。 經(jīng)常有香客問我,道長灸叼,這世上最難降的妖魔是什么神汹? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任庆捺,我火速辦了婚禮,結(jié)果婚禮上屁魏,老公的妹妹穿的比我還像新娘滔以。我一直安慰自己,他們只是感情好氓拼,可當(dāng)我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布你画。 她就那樣靜靜地躺著,像睡著了一般披诗。 火紅的嫁衣襯著肌膚如雪撬即。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天呈队,我揣著相機與錄音剥槐,去河邊找鬼。 笑死宪摧,一個胖子當(dāng)著我的面吹牛粒竖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播几于,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼蕊苗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沿彭?” 一聲冷哼從身側(cè)響起朽砰,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎喉刘,沒想到半個月后瞧柔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡睦裳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年造锅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廉邑。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡哥蔚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛛蒙,到底是詐尸還是另有隱情糙箍,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布牵祟,位于F島的核電站倍靡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏课舍。R本人自食惡果不足惜塌西,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望筝尾。 院中可真熱鬧捡需,春花似錦、人聲如沸筹淫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽损姜。三九已至饰剥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摧阅,已是汗流浹背汰蓉。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棒卷,地道東北人顾孽。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像比规,于是被迫代替她去往敵國和親若厚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 更新完android3.0以后蜒什,發(fā)現(xiàn)gradle 已經(jīng)依賴gradle4.0.1-all.zip,而且在proje...
    好好的1111閱讀 252評論 0 0
  • 小雨輕輕油傘撐测秸,碧草紅花水露生。 青魚戲水游云際灾常,荷下蛙鳴一片爭霎冯。
    詩詞人子虛雨閱讀 169評論 0 0
  • 1.我自是年少,韶華傾負(fù)(本寶寶還小岗憋,浪費了不少時間) 2.你要記得肃晚,那年那月,垂柳紫陌洛城東(哎呀媽呀仔戈,這城樹可...
    孫昊之閱讀 396評論 4 5
  • 秋絲與大地纏綿 涼氣隨風(fēng)卷起 帶著一縷熟悉的味道 感覺的味道 回憶的味道 眷戀的味道 不舍的味道 無需經(jīng)過味蕾的品...
    閑少幽閱讀 229評論 2 2
  • 孩子星期六日沒有完成作業(yè)关串,今天特意打電話問他如何處理的,他說跟老師解釋了监徘,中午已經(jīng)將作業(yè)補交上去了晋修,我肯定他...
    英才日記閱讀 186評論 0 0