Git-程序員和寫作者都該使用的版本控制工具

ecology-efficiency-electricity.jpg

Git 是最流行的版本控制工具登渣。任何類型的文檔都是在不斷變化的噪服,就像APP一樣,時不時得發(fā)布新版胜茧,可能是修復(fù)bug粘优,也可能是增加新的功能,也可能是進(jìn)行重構(gòu)呻顽。

版本控制就賦予我們記錄每個版本狀態(tài)的能力雹顺,讓我們能知道各個版本之間有哪些改變。以及廊遍,更重要的一點嬉愧,隨時可以還原到以前的版本。

由此就帶來了兩個好處喉前。一是風(fēng)險控制没酣,由于可以隨時還原到先前的版本,所以可以放心大膽地改造卵迂,錯了還原就行裕便。

二是提高效率,這也體現(xiàn)在兩方面见咒。1. 原來我們做出改動后偿衰,要是發(fā)現(xiàn)有問題,撤消修改可費時了论颅。用Git之后用一條命令即可撤消所有的改變哎垦。2. 像Git可以創(chuàng)建分支囱嫩,即復(fù)制當(dāng)前的狀態(tài)恃疯。就像不斷地走叉路一樣,每當(dāng)你想走不同的路都可以新建一個分支墨闲,看看能不能走通今妄,走不通就換一條分支,幾乎沒有切換成本鸳碧。

目前使用 Git 最多的就是程序員了盾鳞,甚至可以說不使用 Git 的程序員就不是優(yōu)秀的程序員。雖然不會像程序員那樣頻繁使用瞻离,但普通的寫作者也可以從Git中得到很多好處腾仅。比如可以用markdown格式寫文章-也就意味著不要用word,然后使用 Git 管理文章套利,或者查看文章更新記錄推励。

提到 Git鹤耍,就不能不提Github⊙榇牵可以認(rèn)為Github是Git的云端稿黄,在本地用Git提交完修改之后,可以把文件 push 到Github跌造,這樣其他人可以把新版本 pull 至本地杆怕。這就提供了很方便地協(xié)作方式,Github上也存在著大量的開源項目壳贪。

Git 受歡迎到什么程序呢陵珍?舉個例子,Macbook就自帶了Git违施。打開終端撑教,輸入git --version 即可查看git版本。

Git 使用起來也很方便醉拓。在終端中輸入git init 即在當(dāng)前目錄下新建了一個資源庫伟姐,此目錄下的所有文件都可以通過git進(jìn)行管理了。

Git入門只需要知道如下七個命令亿卤,知道了這些之后自己就可嘗試先玩一玩愤兵,碰到不懂的再Google一下,隨著時間積累經(jīng)驗即可排吴。

假設(shè)你修改了當(dāng)前目錄下的一個文件秆乳,那怎么“更新版本”呢?首先使用 git add filename將修改的文件加入暫存區(qū)钻哩,然后使用git commit提交當(dāng)前文件屹堰,這時你可以記錄下本次更新的重點。你可以多次使用git add將多個文件分不同次加入暫存區(qū)街氢,然后一次性提交扯键,這對程序員來說非常有用。

有時修你不確定自己是否對文件做了修改珊肃,那你可以通過git status來獲得這部分信息荣刑,加入暫存區(qū)、未加入暫存區(qū)伦乔、未跟蹤的文件信息都會顯示出來厉亏。

同時你可以通過git log來獲得歷史提交記錄,也就是版本更新歷史烈和。每次提交都會產(chǎn)生一個id號爱只,通過這個命令你就能獲取對應(yīng)版本的id號了。除了id號之外招刹,你還能看到每次提交你所做的記錄恬试,所以只要你記錄的夠詳細(xì)沥匈,你就能快速知道每個版本之間的差距是什么。

當(dāng)你使用git init生成git資源庫時會自動生成了一個主分支master忘渔,若是你想嘗試走個“叉路”高帖,可以通過git branch -b branchName來新建一個分支,你可以在這個分支里隨意折騰畦粮。

你可以通過git checkout branchName命令在不同的分支之間進(jìn)行切換散址。若是在分支中實驗成功了,那你可以把分支中的提交合并到主分支中去宣赔,方法就是進(jìn)入主分支后预麸,輸入git merge branchName即可把分支branchName中的提交合并進(jìn)去。

此時輸入git log就能看到主分支中多了合并分支中的提交了儒将。

看到這吏祸,你就可以先自己玩起來了,等你嘗試用它管理自己的代碼或文章之后钩蚊,你會發(fā)現(xiàn)再也離不開它了贡翘。

由于最近頻繁的使用git,以下記錄使用過的一些命令砰逻。

git checkout filename                 撤消文件的改動至最新的版本
git log -p filename                        查看某文件的歷史修改記錄
git show commit-id filename            查看某文件某次提交中的變換
git reset --hard                            將代碼回滾至上一個版本
git reset --hard commit_id            將代碼回滾至commit_id版本
git reset HEAD^ filename            回退某個文件至上一個版本
git branch -D branchName       刪除分支
git reset HEAD filename            取消已經(jīng)暫存的文件
git reset HEAD~                    取消最近一次提交
git reset commit_id filename        取消文件最近幾次的提交鸣驱;此時輸入git checkout filename即可恢復(fù)文件至commit_id這個版本
git commit --amend            修改最后一次提交
git reset -hard origin/master        將本地的狀態(tài)回通到和遠(yuǎn)程的一樣
git rm --cached FILENAME        不再跟蹤已提交的文件

若是不想跟蹤某個文件,也不想在git status看到這個文件蝠咆,可以將文件名添加到 .gitignore這個隱藏文件中踊东。

最后分享我使用git的一個錯誤。最近開發(fā)維護(hù)了四個項目代碼刚操,我確在一個分支中同時進(jìn)行四個項目的開發(fā)維護(hù)闸翅。由于其中一個項目還存在bug,我不能將代碼合并到主分支去菊霜,這就影響了其它開發(fā)完的項目坚冀,導(dǎo)致其它項目也不能合并到主分支。這次教訓(xùn)讓我知道了占卧,每個項目都要有單獨的分支遗菠,要保持獨立性联喘,互不影響华蜒。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市豁遭,隨后出現(xiàn)的幾起案子叭喜,更是在濱河造成了極大的恐慌,老刑警劉巖蓖谢,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捂蕴,死亡現(xiàn)場離奇詭異譬涡,居然都是意外死亡,警方通過查閱死者的電腦和手機啥辨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門涡匀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人溉知,你說我怎么就攤上這事陨瘩。” “怎么了级乍?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵舌劳,是天一觀的道長。 經(jīng)常有香客問我玫荣,道長甚淡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任捅厂,我火速辦了婚禮贯卦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘焙贷。我一直安慰自己脸侥,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布盈厘。 她就那樣靜靜地躺著睁枕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沸手。 梳的紋絲不亂的頭發(fā)上外遇,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機與錄音契吉,去河邊找鬼跳仿。 笑死,一個胖子當(dāng)著我的面吹牛捐晶,可吹牛的內(nèi)容都是我干的菲语。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼惑灵,長吁一口氣:“原來是場噩夢啊……” “哼山上!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起英支,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤佩憾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妄帘,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡楞黄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了抡驼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鬼廓。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖致盟,靈堂內(nèi)的尸體忽然破棺而出呼伸,到底是詐尸還是另有隱情彪标,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站废酷,受9級特大地震影響蚤吹,放射性物質(zhì)發(fā)生泄漏舆瘪。R本人自食惡果不足惜臊岸,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蕉饼。 院中可真熱鬧虐杯,春花似錦、人聲如沸昧港。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽创肥。三九已至达舒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叹侄,已是汗流浹背巩搏。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留趾代,地道東北人贯底。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像撒强,于是被迫代替她去往敵國和親禽捆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

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

  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照飘哨,而是把代碼倉庫完整的鏡像下來胚想。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 15,887評論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照杖玲,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 3,921評論 0 11
  • 一顿仇、電腦本地初始化一個倉庫 1. git init: 初始化一個電腦上本地倉庫 終端進(jìn)入項目目錄,輸入: 該命令將...
    dragon_li閱讀 2,923評論 1 4
  • 最近總有家長問我為什么孩子越往高年級走,語文越差囤采,就算家長想去引導(dǎo)述呐,也是無從下手。語文到底該怎么學(xué)蕉毯? 語文這門學(xué)科...
    韋寶媽育兒手記閱讀 512評論 2 7
  • 概述 如何利用Python的來實現(xiàn)具有一個隱藏層的平面數(shù)據(jù)分類問題乓搬。前文,創(chuàng)建的神經(jīng)網(wǎng)絡(luò)只有一個輸出層代虾,沒有隱藏層...
    茶盡閱讀 724評論 0 0