代碼管理工具
發表時(shí)間:2020-10-19
發布人(rén):融晨科技
浏覽次數:52
說(shuō)明
- 使用代碼管理工具(svn、git或者其它)管理代碼是(shì)一件習以(yǐ)爲(wéi / wèi)常的(de)事情,但是(shì)隻知被動使用,卻不(bù)知爲(wéi / wèi)何使用,容易引出(chū)很多異議,特記錄下工作中的(de)遇到(dào)的(de)異論。
異論
小公司/小團隊是(shì)否必要(yào / yāo)使用管理工具
- 事例
- 之(zhī)前在(zài)一家TP_Link出(chū)來(lái)創業的(de)小團隊,公司業務類似于(yú)方案商,給别的(de)廠商做項目,因此項目較多,但是(shì)在(zài)工作中,代碼管理竟然不(bù)使用管理工具,代碼通過複制拷貝的(de)方式來(lái)傳遞,每個(gè)人(rén)單獨負責一些項目以(yǐ)減少代碼交互,剛來(lái)時(shí)未在(zài)意,因此未對代碼進行管理,工作一段時(shí)間後,我認識到(dào)這(zhè)是(shì)不(bù)合理的(de),因此時(shí)常和(hé / huò)領導反饋,但是(shì)并沒有得到(dào)修正,最後反饋次數多了(le/liǎo),領導的(de)回答是(shì):你就(jiù)知道(dào)你認爲(wéi / wèi),你認爲(wéi / wèi)(我是(shì)和(hé / huò)他(tā)說(shuō)我認爲(wéi / wèi)這(zhè)是(shì)不(bù)合理的(de)),我不(bù)要(yào / yāo)你認爲(wéi / wèi),我要(yào / yāo)我認爲(wéi / wèi),你要(yào / yāo)用你自己用就(jiù)好了(le/liǎo),你自己管理好就(jiù)行了(le/liǎo),就(jiù)這(zhè)麽幾個(gè)人(rén)你還能弄錯嗎?弄錯了(le/liǎo)也(yě)是(shì)你能力不(bù)行。
- 沒多久我離職了(le/liǎo),交接時(shí)被接手的(de)員工罵慘,原因是(shì),剛來(lái)時(shí)的(de)修改很多我都不(bù)記得了(le/liǎo),沒記錄了(le/liǎo)(後面我使用git進行了(le/liǎo)管理,前面一段時(shí)間的(de)修改記錄丢失了(le/liǎo))。
- 個(gè)人(rén)結論
- 代碼必須使用代碼管理工具管理,就(jiù)算是(shì)小團隊,甚至是(shì)個(gè)人(rén),拿到(dào)未做管理的(de)代碼或者開始一個(gè)新項目,第一步就(jiù)算添加進版本管理。
使用svn還是(shì)Git
- 事例
- 之(zhī)前在(zài)一家華爲(wéi / wèi)和(hé / huò)騰訊出(chū)來(lái)創業的(de)團隊,公司使用svn管理代碼,團隊使用時(shí)并沒有用到(dào)過多高級功能,但是(shì)随着項目的(de)發展,需要(yào / yāo)使用到(dào)一些高級功能,例如:使用分支,但是(shì)由于(yú)svn的(de)分支切換以(yǐ)及創建非常麻煩,分支創建相當于(yú)重新創建一個(gè)倉庫,切換分支相當于(yú)重新拉取一份代碼;在(zài)工作中使用svn也(yě)遇到(dào)一些問題,例如:無法獲知所有改動,svn查看修改時(shí)默認顯示當前目錄下的(de)代碼修改,不(bù)會顯示所有修改(可能一些複雜命令可以(yǐ)實現),故容易導緻忽略一些代碼的(de)修改。
- 因此svn使用過程中不(bù)是(shì)很愉悅,故學習了(le/liǎo)git的(de)使用,被git使用震驚到(dào)了(le/liǎo),感覺就(jiù)是(shì)個(gè)人(rén)理想中的(de)管理工具;因此推薦給領導使用,領導的(de)回答是(shì):在(zài)他(tā)眼裏,git和(hé / huò)svn是(shì)一樣的(de),隻是(shì)一個(gè)工具,不(bù)要(yào / yāo)把心思花在(zài)工作不(bù)相關的(de)事情上(shàng)。
- 個(gè)人(rén)結論
- git和(hé / huò)svn絕對不(bù)一樣,svn我使用了(le/liǎo)多年(至少4年),總的(de)來(lái)說(shuō)git是(shì)svn的(de)下一代産品,不(bù)是(shì)同一代産品,因此盡量選擇git,雖然svn也(yě)能實現你的(de)需求,但是(shì)當你明白自己的(de)需求後,使用git會讓你更快捷和(hé / huò)方便以(yǐ)及貼心。
- 有些傳統公司依然使用svn,可以(yǐ)在(zài)代碼倉庫再git init一個(gè)倉庫,代碼是(shì)同一份,使用git管理,需要(yào / yāo)提交時(shí),再通過svn提交。
個(gè)人(rén)總結
代碼管理工具的(de)作用
- 備份代碼
- 使用代碼管理工具可以(yǐ)對代碼進行備份,本地(dì / de)備份是(shì)不(bù)可靠的(de),電腦出(chū)問題容易導緻代碼丢失,最好保存多份,但是(shì)手動或其它方式備份容易出(chū)錯。
- 記錄修改
- 記錄修改了(le/liǎo)什麽,什麽時(shí)候修改的(de)等信息,沒有修改記錄,時(shí)間長後容易遺忘。
- 加快效率
- 工具可以(yǐ)加快工作效率,特别是(shì)需要(yào / yāo)分支,有沖突的(de)情況時(shí),好的(de)工具比差的(de)工具效率高。
- 避免出(chū)錯
- 需要(yào / yāo)分支時(shí),有時(shí)會使用拷貝的(de)方式,可能出(chū)現代碼複制拷貝了(le/liǎo)多份,未及時(shí)删除未使用的(de),時(shí)間長未修改後,沒有修改記錄,不(bù)清楚哪份是(shì)正确的(de)。
git與svn比較
- svn和(hé / huò)git最大(dà)的(de)區别是(shì):svn 是(shì)集中式的(de),而(ér)git 是(shì)分布式的(de),有人(rén)說(shuō)你明白了(le/liǎo)這(zhè)點,svn與git 的(de)區别就(jiù)明白了(le/liǎo)一大(dà)半。
- svn是(shì)集中式的(de):文件是(shì)服務器和(hé / huò) 本地(dì / de)都有一份,但是(shì)代碼的(de)管理,都是(shì)由服務器來(lái)做的(de),意味着你隻有連上(shàng)svn服務器後,才能進行代碼管理,網絡斷開後,svn無法做任何事,雖然一般是(shì)在(zài)局域網内使用,但是(shì)如果離開該局域網就(jiù)無法做任何管理工作了(le/liǎo)。
- git是(shì)分布式的(de):文件是(shì)服務器和(hé / huò) 本地(dì / de)都有一份,可以(yǐ)推送給别人(rén),幾乎所有的(de)操作都可以(yǐ)在(zài)本地(dì / de)操作。
- git服務器和(hé / huò)普通用戶是(shì)平等的(de),甚至服務器是(shì)可以(yǐ)取消的(de),而(ér)svn服務器是(shì)核心,不(bù)可或缺的(de)。
- 在(zài)斷網的(de)情況下,想要(yào / yāo)進行代碼管理隻能使用 git。
- svn更适合文檔管理(可以(yǐ)單獨下載任意文件),而(ér)git更适合代碼管理(不(bù)能下載當個(gè)文件,有辦法實現,但是(shì)比較麻煩)
- svn不(bù)是(shì)整個(gè)項目做管理,每個(gè)目錄都有一個(gè).svn來(lái)保存記錄,查看修改默認隻是(shì)顯示當前目錄的(de)更改,因此你不(bù)能方便的(de)查看整個(gè)工程的(de)改動。
- svn太老了(le/liǎo),git還年輕,svn沒有多少擴展的(de)工具,git有很多強大(dà)方便的(de)擴展工具。
- …