常用版本控制工具

什么是版本控制?

可以把一個(gè)版本控制系統(tǒng)(縮寫VCS)理解為一個(gè)“數(shù)據(jù)庫”祠挫,在需要的時(shí)候西饵,它可以幫你完整地保存一個(gè)項(xiàng)目的快照。當(dāng)你需要查看一個(gè)之前的快照(稱之為“版本”)時(shí)躺翻,版本控制系統(tǒng)可以顯示出當(dāng)前版本與上一個(gè)版本之間的所有改動(dòng)的細(xì)節(jié)丧叽。

在團(tuán)隊(duì)開發(fā)中使用版本控制系統(tǒng)的好處

1.作為數(shù)據(jù)備份

這是一個(gè)主要的原因了。雖然數(shù)據(jù)備份同樣可以用比較笨的方法:本地復(fù)制副本公你,但這種古老的方法有很多不足踊淳,無法應(yīng)對頻繁的修改,會(huì)照成版本混亂陕靠,不便于管理迂尝,并且占用空間。

2.版本管理

避免版本管理混亂剪芥。這是使用版本管理的最主要原因垄开,也是版本管理的目的所在。你肯定不會(huì)希望在本地手動(dòng)備份了多個(gè)副本后税肪,到頭來卻不知道那個(gè)備份是最新的溉躲,那個(gè)備份進(jìn)行了什么修改,修改日期是什么時(shí)候等等一切你記不清的問題益兄。而版本管理軟件能解決這些問題锻梳,它有詳細(xì)的日志,能記住你的每一次提交偏塞、每一次改動(dòng)唱蒸,并且能夠比較查看不同版本之間的異同,并且可以恢復(fù)到之前的任一版本灸叼。

3.提高代碼質(zhì)量

在沒有版本管理之前神汹,可能經(jīng)常要在代碼里寫些不相關(guān)的注釋庆捺,比如:某人某日對某代碼進(jìn)行修改;或是將一些不確定是否使用的代碼用注釋的形式保留等等,這些也就是僵尸代碼啦∑ㄎ海現(xiàn)在這些工作都可以交由版本管理工具完成滔以,把這些不相關(guān)的僵尸代碼從代碼里刪掉吧。

4.提高協(xié)同氓拼、多人開發(fā)時(shí)的效率你画。

及時(shí)提交更新代碼,能讓團(tuán)隊(duì)中的成員了解到代碼的最新情況桃漾,避免重復(fù)勞動(dòng)坏匪。

5.明確分工責(zé)任。

什么時(shí)候誰對代碼做了修改撬统、修改了什么內(nèi)容适滓,版本管理都會(huì)記錄在案,方便查詢恋追,追究責(zé)任凭迹。

6.除了代碼以外,很多文檔苦囱、個(gè)人資料嗅绸,如:簡歷等等都可以進(jìn)行版本管理,這是有趣而高效的撕彤。凡是需要持續(xù)修改的文檔資料都可以進(jìn)行版本管理

下面來介紹下目前常見的版本控制工具

1.Git

Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)鱼鸠,使用Git和Gitlab搭建版本控制環(huán)境是現(xiàn)在互聯(lián)網(wǎng)公司最流行的版本控制方式
簡介:
Git是一個(gè)免費(fèi)的開源分布式版本控制系統(tǒng),旨在快速高效地處理從小型到大型項(xiàng)目的所有事務(wù)喉刘。
Git易于學(xué)習(xí)瞧柔,占用內(nèi)存小漆弄,具有閃電般快速的性能睦裳。
Github地址:https://github.com/git/git
官方網(wǎng)站:https://git-scm.com/
官方文檔:https://git-scm.com/docs
中文文檔:https://git-scm.com/book/zh/v2
下載地址:https://git-scm.com/downloads

2.SVN

簡介:
TortoiseSVN是一款非常易于使用的跨平臺(tái)的 版本控制/版本控制/源代碼控制軟件。它基于Apache Subversion(SVN)? ; TortoiseSVN為Subversion提供了一個(gè)簡單易用的用戶界面撼唾。
TortoiseSVN開源地址:https://osdn.net/projects/tortoisesvn/
Subversion的Github地址:https://github.com/apache/subversion
官方網(wǎng)站:https://tortoisesvn.net/
官方文檔:https://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html
中文文檔:https://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/index.html
下載地址:https://tortoisesvn.net/downloads.html

3.HG

簡介:
Mercurial是一個(gè)免費(fèi)的分布式源代碼管理工具廉邑。它可以有效地處理任何規(guī)模的項(xiàng)目,并提供簡單直觀的界面倒谷。Mercurial 是一種輕量級分布式版本控制系統(tǒng)蛛蒙,采用 Python 語言實(shí)現(xiàn),易于學(xué)習(xí)和使用渤愁,擴(kuò)展性強(qiáng)牵祟。
官方網(wǎng)站:https://www.mercurial-scm.org/
官方文檔:https://www.mercurial-scm.org/wiki/BeginnersGuides
下載地址:https://www.mercurial-scm.org/downloads

4.CVS

CVS是版本控制系統(tǒng),是源配置管理(SCM)的重要組成部分抖格。使用它诺苹,您可以記錄源文件和文檔的歷史記錄咕晋。老牌的版本控制系統(tǒng),它是基于客戶端/服務(wù)器的行為使得其可容納多用戶收奔,構(gòu)成網(wǎng)絡(luò)也很方便掌呜。這一特性使得CVS成為位于不同地點(diǎn)的人同時(shí)處理數(shù)據(jù)文件(特別是程序的源代碼)時(shí)的首選。
官方網(wǎng)站:http://www.nongnu.org/cvs/
官方文檔:https://web.archive.org/web/20140629065005/http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs.html
下載地址:https://ftp.gnu.org/non-gnu/cvs/

優(yōu)勢:

1.更輕松的管理坪哄。傳統(tǒng)的版本控制系統(tǒng)使用集中式的 repository质蕉,一些和repository相關(guān)的管理就只能由管理員一個(gè)人進(jìn)行。由于采用了分布式的模型翩肌,Mercurial 中就沒有這樣的困擾模暗,每個(gè)用戶管理自己的 repository,管理員只需協(xié)調(diào)同步這些repository念祭。
2.更健壯的系統(tǒng)汰蓉。分布式系統(tǒng)比集中式的單服務(wù)器系統(tǒng)更健壯,單服務(wù)器系統(tǒng)一旦服務(wù)器出現(xiàn)問題整個(gè)系統(tǒng)就不能運(yùn)行了棒卷,分布式系統(tǒng)通常不會(huì)因?yàn)橐粌蓚€(gè)節(jié)點(diǎn)而受到影響顾孽。
3.對網(wǎng)絡(luò)的依賴性更低。由于同步可以放在任意時(shí)刻進(jìn)行比规,Mercurial 甚至可以離線進(jìn)行管理若厚,只需在有網(wǎng)絡(luò)連接時(shí)同步。

版本控制工具的可視化客戶端

1.Gitkraken

輕松使用托管在GitHub蜒什,GitLab测秸,BitbucketAzure DevOps(VSTS)這些站點(diǎn)上的存儲(chǔ)庫灾常。GitKraken都可克隆霎冯,添加分支,創(chuàng)建/打開拉取請求钞瀑。
官網(wǎng):https://www.gitkraken.com/

特點(diǎn):

1.直觀的UI
2.內(nèi)置代碼編輯器:初始化一個(gè)全新的項(xiàng)目并使用內(nèi)置代碼編輯器添加新文件和文件夾沈撞,并直接在GitKraken中編輯它們。保存文件雕什,暫存和提交更改缠俺。沒有更多上下文切換!
3.任務(wù)跟蹤:將Glo Board連接到GitKraken中的存儲(chǔ)庫贷岸。當(dāng)您在任務(wù)上取得進(jìn)展時(shí)壹士,可以快速更新代碼的相關(guān)問題,然后重新開始編碼偿警。

image.png
2.Tower

官網(wǎng):https://www.git-tower.com

Tower的優(yōu)點(diǎn)

1.便于使用:無需記住復(fù)雜的命令(及其參數(shù))躏救。Tower使許多高級操作像拖放一樣簡單。
2.撤消一切的功能:包括撤消本地更改螟蒸,恢復(fù)舊版本盒使,還原提交睁本,恢復(fù)已刪除的提交,撤消分支刪除
3.清晰的可視化忠怖,更好的理解:Tower的清晰視覺界面非常有用 - 并且使復(fù)雜場景更容易理解呢堰。
4.優(yōu)雅地使用Git:以簡單,直觀的方式解決合并沖突凡泣,不需要SSH密鑰枉疼,用戶名,密碼和身份驗(yàn)證令牌進(jìn)行驗(yàn)證

image.png

3.Sourcetree

簡介:適用于Windows和Mac的免費(fèi)Git客戶端
Sourcetree簡化了與Git存儲(chǔ)庫交互的方式鞋拟,通過Sourcetree的簡單Git GUI可視化和管理存儲(chǔ)庫

官網(wǎng):https://www.sourcetreeapp.com/

image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骂维,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贺纲,更是在濱河造成了極大的恐慌航闺,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猴誊,死亡現(xiàn)場離奇詭異潦刃,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)懈叹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門乖杠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人澄成,你說我怎么就攤上這事胧洒。” “怎么了墨状?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵卫漫,是天一觀的道長。 經(jīng)常有香客問我肾砂,道長列赎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任通今,我火速辦了婚禮粥谬,結(jié)果婚禮上肛根,老公的妹妹穿的比我還像新娘辫塌。我一直安慰自己,他們只是感情好派哲,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布臼氨。 她就那樣靜靜地躺著,像睡著了一般芭届。 火紅的嫁衣襯著肌膚如雪储矩。 梳的紋絲不亂的頭發(fā)上感耙,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機(jī)與錄音持隧,去河邊找鬼即硼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛屡拨,可吹牛的內(nèi)容都是我干的只酥。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼呀狼,長吁一口氣:“原來是場噩夢啊……” “哼裂允!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哥艇,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤绝编,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后貌踏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體十饥,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年祖乳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绷跑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凡资,死狀恐怖砸捏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情隙赁,我是刑警寧澤垦藏,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站伞访,受9級特大地震影響掂骏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜厚掷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一弟灼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冒黑,春花似錦田绑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春欧穴,著一層夾襖步出監(jiān)牢的瞬間民逼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工涮帘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拼苍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓调缨,卻偏偏與公主長得像映屋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子同蜻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

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