聊聊git的那些事

git是什么贵扰?一個高端大氣上檔次的分布式版本控制系統(tǒng)菊霜。
相信小伙伴們對于git 并不陌生。對它當中文件的三種狀態(tài):已修改(modified)脊另,已暫存(staged)导狡,已提交(committed)很熟悉啦,只要是寫代碼就天天見偎痛。對應(yīng)的三種操作:

  • git add XX:文件修改添加到暫存區(qū)
  • git commit -m "XX":把暫存區(qū)的所有內(nèi)容提交到當前分支
  • git push XXX:把本地的代碼提交到遠程

哈哈旱捧,這三條命令小伙伴們估計都十分清楚,畢竟天天的都在使用,下面我們來說點別的吧枚赡。

版本回退

哎呀氓癌,把文件改的亂成一團糟了,想看看以前寫的贫橙,怎么辦贪婉?版本回退唄(兩步走)。

  1. git log查看你的歷史記錄卢肃,這條命令會顯示從最近到最遠的提交日志疲迂,你會看見很多類似567893455...897655....的數(shù)字,這就是你的版本號啦莫湘。
  2. git reset --hard 56789這個命令就可以回到這個版本號所代表的版本啦尤蒿。(版本號用哈西值表示,很長幅垮,回退時只用輸如前幾個就好了腰池,git會自動幫你找的。)

撤銷修改

當突然發(fā)現(xiàn)這次的修改是沒有意義的忙芒,怎么辦示弓?撤銷。加入你當前修改的文件的 aaa.js,那么就用git checkout -- aaa.js匕争,它會丟棄你對工作區(qū)的修改避乏。

如果你此時還沒有add到暫存區(qū),那么用這個命令后就會回到和版本庫一樣的狀態(tài)了甘桑。若果此時已經(jīng)add了拍皮,好吧,那就會回到添加到暫存區(qū)后的狀態(tài)跑杭。

刪除文件

假如你已經(jīng)git add 和commit 了一個文件bbb.js,然后你在文件管理器中卻把bbb.js給刪了铆帽,用git status看下,它會告訴你刪除了bbb.js這個文件德谅。這里就有兩種情況了:

  • 你確實是打算從git 版本庫里刪除這個文件爹橱,那就先用git rm bbb.js刪掉,再用git commit -m " XXX "一下窄做,你就從版本庫里刪掉了愧驱。
  • 如果你是不小心誤刪的,好吧椭盏,沒有關(guān)系组砚,git checkout -- bbb.js你就可以找回來了,因為git checkout其實是用版本庫里的版本替換工作區(qū)的版本掏颊。

分支管理

很多小伙伴們在一起開發(fā)時寫代碼時可能會遇到這樣的尷尬情況糟红,你的代碼還沒寫完艾帐,如果提交代碼到主分支可能會影響整個系統(tǒng)代碼使別人的代碼無法工作。如果不提交要是突然電腦壞了代碼都找不到了盆偿,那該怎么辦柒爸?又或者這樣,當你正開發(fā)的好嗨皮的時候事扭,boss來了讓你干個其它的很緊急的活吧捎稚,這時候怎么弄?分支可以幫你解決這個問題句旱。

  1. git checkout -b dev建立一個叫div的分支并切換到該分支

git checkout命令加上-b參數(shù)表示創(chuàng)建并切換阳藻,相當于git branch devgit checkout dev兩條命令

  1. git branch命令查看當前所有的分支,并在當前分支前會標一個 *
  2. 完成dev上的開發(fā)提交后用git checkout master可以切回master分支了
  3. 如果想在主分支上看見dev上開發(fā)的成果谈撒,那就合并分支吧,就dev合并在主分支上git merge dev匾南,合并后就可以在master上看見dev的提交了啃匿。
  4. 合并完了就可以刪除dev分支了,用這個命令git branch -d dev就可以啦蛆楞。

用上面方法合并分支時溯乒,Git會用Fast forward模式,但這種模式下豹爹,刪除分支后裆悄,會丟掉分支信息。如果要強制禁用Fast forward模式臂聋,命令長這樣git merge --no-ff -m "merge with no-ff" dev(其中--no-ff表示禁用Fast forward模式)光稼,Git就會在merge時生成一個新的commit,這樣孩等,從分支歷史上就可以看出分支信息艾君。

沒有用--no-ff的合并長這樣:

用Fast forward模式

用--no-ff的合并長這樣:

不使用Fast forward模式

小插曲

  • 我們要在新分支上工作時,可以把當前的工作區(qū)的東西暫存起來,用git stash命令,再次回來可以用git stash pop肄方,回到工作現(xiàn)場冰垄。
  • 合并分支還有另一個辦法rebaseing,它和merge的區(qū)別,就參考這篇文章.

解決沖突

有時候,當master分支和dev分支各自都分別有新的提交,git 合并時就會出現(xiàn)沖突权她,有時git 會自動解決沖突虹茶,但有時就需要手動解決沖突了。我常用的IDE是WebStorm,它提供了很好用的解決沖突的插件隅要。打開WebStorm ->用快捷鍵Ctrl +shift+A打開窗口 -> 輸入Resolve Conflicts...就可以打開解決沖突的工具啦蝴罪,很好用的哦!
解決完沖突后再次提交代碼就OK啦,用git log --graph命令可以看到分支合并圖拾徙。

最后洲炊,創(chuàng)建自己的密鑰并在github上配置,這樣使用git命令時不需要每次輸入密碼,參見教程,再給大家推薦一個很好玩的闖關(guān)的游戲吧暂衡,如果實在過不去了询微,就看看參考答案吧!(參考答案見參考文2,3,4,5,6)

參考文章:

1.http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
2.https://codingstyle.cn/topics/57 (2~10關(guān))
3.https://codingstyle.cn/topics/67 (11~20關(guān))
4.https://codingstyle.cn/topics/73 (21~30關(guān))
5.https://codingstyle.cn/topics/178 (31~40關(guān))
6.https://codingstyle.cn/topics/181 (41~55關(guān))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狂巢,一起剝皮案震驚了整個濱河市撑毛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唧领,老刑警劉巖藻雌,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異斩个,居然都是意外死亡胯杭,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門受啥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來做个,“玉大人,你說我怎么就攤上這事滚局【优” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵藤肢,是天一觀的道長太闺。 經(jīng)常有香客問我,道長嘁圈,這世上最難降的妖魔是什么省骂? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮丑孩,結(jié)果婚禮上冀宴,老公的妹妹穿的比我還像新娘。我一直安慰自己温学,他們只是感情好略贮,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仗岖,像睡著了一般逃延。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轧拄,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天揽祥,我揣著相機與錄音,去河邊找鬼檩电。 笑死拄丰,一個胖子當著我的面吹牛府树,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播料按,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼奄侠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了载矿?” 一聲冷哼從身側(cè)響起垄潮,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎闷盔,沒想到半個月后弯洗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡逢勾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年牡整,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溺拱。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡果正,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盟迟,到底是詐尸還是另有隱情,我是刑警寧澤潦闲,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布攒菠,位于F島的核電站,受9級特大地震影響歉闰,放射性物質(zhì)發(fā)生泄漏辖众。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一和敬、第九天 我趴在偏房一處隱蔽的房頂上張望凹炸。 院中可真熱鬧,春花似錦昼弟、人聲如沸啤它。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽变骡。三九已至,卻和暖如春芭逝,著一層夾襖步出監(jiān)牢的瞬間塌碌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工旬盯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留台妆,地道東北人翎猛。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像接剩,于是被迫代替她去往敵國和親切厘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

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

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評論 9 163
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git搂漠,從https:/...
    落魂灬閱讀 12,664評論 4 54
  • 教程網(wǎng)址:http://www.liaoxuefeng.com/wiki/0013739516305929606d...
    maybenai閱讀 687評論 0 1
  • 這兩天大寶總要聽小貓當當系列的生日快樂迂卢,聽到:我不告訴你,現(xiàn)在還不能說桐汤,這一段時而克,笑的合不攏嘴。然后問媽媽怔毛,我的生...
    怡然自得SH閱讀 209評論 0 0
  • 前些日子有人問我什么是喜歡员萍,什么是愛。當時我答不出來拣度。過了一天之后碎绎,我心里忽然有了個比喻,或許能表達出我的想法抗果。 ...
    一刀齋閱讀 284評論 7 0