一杯茶的功夫语卤,掌握Git常用命令(轉(zhuǎn)載)

技術(shù)交流QQ群:1027579432,歡迎你的加入酪刀!

歡迎關(guān)注我的微信公眾號:CurryCoder的程序人生

1.創(chuàng)建與合并分支

  • (1).從master分支創(chuàng)建dev分支粹舵,并切換到dev分支

    git checkout master
    git checkout -b dev
    
  • 其中,git checkout -b dev等價于

    git branck dev
    git checkout dev
    
  • (2).查看本地當(dāng)前的分支骂倘,分支前面帶*表示當(dāng)前分支眼滤,剩下的分支表示本地有的其他分支

    git branch
    
  • (3).查看遠(yuǎn)程全部的分支,白色的表示本地有的历涝,紅色的表示本地沒有的诅需,僅在遠(yuǎn)程存在。

    git branch -a
    
  • (4).修改代碼荧库,提交代碼(當(dāng)前的操作是在dev分支上進(jìn)行的)

    git add hello_git.txt
    git commit -m '提交文件hello_git.txt'
    
  • (5).分支合并(將dev合并到master分支)

    git checkout master
    git merge dev
    
  • (6).合并完成后堰塌,刪除dev分支(刪除dev分支時壮锻,注意我們當(dāng)前所在的分支不能是dev分支)

    git branch -d dev
    
  • (7).刪除后冷蚂,查看分支(此時看不到dev分支啦)

    git branch
    
  • (8).總結(jié):工作中經(jīng)常從master分支創(chuàng)建新的分支杖挣,具體操作如下:

    git checkout master
    git checkout -b feature01  // 從master分支創(chuàng)建feature01分支
    git push origin feature01
    git add ..
    git commit -m 'xxx文件的提交說明'
    git push origin feature01
    
  • 注意:將本地分支branch1推送到遠(yuǎn)端的branch2操作步驟:

    git push origin branch1:branch2
    
  • (9).刪除分支

    git branch -D feature01  // 本地強制刪除分支feature01
    git push origin :feature01 // 推送到遠(yuǎn)端
    

2.解決沖突

  • (1).發(fā)生沖突的文件

    <<<<<<< HEAD
    
    Creating a new branch is quick & simple.
    
    =======
    
    Creating a new branch is quick AND simple.
    
    >>>>>>> feature1
    
  • 其中袱蚓,git使用 <<<<<<<掰伸,=======,>>>>>>>標(biāo)記文件中自己和別人產(chǎn)生沖突的部分橱野。在 <<<<<<<灶搜,=======之間為自己的代碼;=======瞎疼,>>>>>>>之間為別人的代碼科乎。如果保留自己的代碼,將別人的代碼刪掉即可丑慎。

  • (2).沖突解決后提交

    git status
    git add ***
    git commit -m "fix conflict"
    git push origin 分支名
    

3.Bug分支

  • (1).儲藏更改:將當(dāng)前更改的代碼儲藏起來喜喂,等以后恢復(fù)使用

    git stash
    
  • (2).恢復(fù)儲藏的代碼

    git stash pop 
    // 恢復(fù)的同時把stash內(nèi)容刪掉
    
  • 或者,先通過git stash list查看所有的stash竿裂,然后恢復(fù)指定版本的代碼

    // 通過git stash list玉吁,查看本地所有的stash,如果我要恢復(fù)第一個就執(zhí)行:
    git stash apply stash@{0}
    
    git stash apply  // 恢復(fù)stash,但是stash內(nèi)容并不刪除
    
    git stash drop // 在上面操作的基礎(chǔ)上腻异,以此來刪除stash
    
    注:git stash list // 查看全部的stash列表
    
  • (3).將stash空間清空

    git stash clear
    
  • (4).git stash pop 和 git stash apply 區(qū)別

    • git stash pop stash@{id}命令會在執(zhí)行后將對應(yīng)的stash id 從stash list里刪除
    • git stash apply stash@{id} 命令則會繼續(xù)保存stash id

4.版本回退

  • (1).回退至上一個版本

    git reset --hard HEAD
    
  • (2).回退至指定版本

    git reset --hard 版本號
    
  • (3).查看歷史版本號(本地commit)

    git reflog
    
  • (4).查看各版本號及信息(所有的commit:本地commit + 其他同事的commit)

    git log
    

5.撤銷修改

  • (1).撤銷修改

    git checkout -- hello_git.txt
    

    有以下兩種情況

    a. 還沒有執(zhí)行 git add 操作进副,執(zhí)行上面的操作后,會恢復(fù)到和版本庫中一模一樣的版本狀態(tài)悔常。

    b.執(zhí)行了git add 影斑,還沒執(zhí)行 git commit ,再執(zhí)行上面的操作后,會恢復(fù)到git add 結(jié)束后的狀態(tài)

    注意:一旦執(zhí)行了git commit -m "*"机打,就不能再使用上面的命令回退矫户。

  • (2).撤銷新建文件

    比如新建一個hello.html頁面,并未執(zhí)行g(shù)it add ,即沒有被git追蹤残邀,此時如果你想撤銷新建動作皆辽,可執(zhí)行:

    git clean -f ../hello.html
    
  • (3).撤銷新建文件夾

    例如,新建一個文件夾"demo"芥挣,并未執(zhí)行g(shù)it add ,即沒有被git追蹤驱闷,此時如果你想撤銷新建動作,可執(zhí)行:

    git clean -df ./demo
    

6.對已push版本進(jìn)行回退

  • (1).第一步

    git reset --hard 版本號 // 本地回退到指定的版本
    
  • (2).第二步

    git push -f origin dev  // 將遠(yuǎn)程的也回退到指定版本
    

7.本地同步遠(yuǎn)程刪除的分支

git fetch origin -p  // 用來清除已經(jīng)沒有遠(yuǎn)程信息的分支空免,這樣git branch -a 就不會拉取遠(yuǎn)程已經(jīng)刪除的分支了

8.刪除未與遠(yuǎn)程分支對應(yīng)的本地分支

  • 從gitlab上看不到的分支在本地可以通過git branch -a 查到空另,刪掉沒有與遠(yuǎn)程分支對應(yīng)的本地分支

    git fetch -p
    

9.查看遠(yuǎn)程庫與本地分支的信息

git remote show origin

10.標(biāo)簽管理

  • (1).給當(dāng)前分支最新commit打標(biāo)簽tag

    git tag v1.0.0
    
  • (2).例如現(xiàn)在周五,要給周一某個commit打標(biāo)簽蹋砚,應(yīng)該執(zhí)行以下步驟

    • (a).查看log日志扼菠,找到相應(yīng)的commit版本號

      git log --pretty=oneline --abbrev-commit
      // 顯示如下commit,比如我想在 "34372b05"這個commit打標(biāo)簽
      44d2e20b fix bug
      34372b05 fix bug
      29554931 fix bug 
      
    • (b).給指定的commit打標(biāo)簽

      git tag v1.0.0 34372b05
      
    • (c).創(chuàng)建的標(biāo)簽只存在本地坝咐,推至遠(yuǎn)程

      git push origin v1.0.0
      
    • (d).一次性推送未推至遠(yuǎn)程的本地標(biāo)簽

      git push origin --tags
      
    • (e).查詢所有標(biāo)簽

      git tag
      
    • (f).查詢標(biāo)簽詳細(xì)信息

      git show v1.0.0
      
    • (g).刪除本地標(biāo)簽

      git tag -d v1.0.0
      
    • (h).刪除遠(yuǎn)程標(biāo)簽

      // 先從本地刪除
      git tag -d v1.0.0
      
      // 然后從遠(yuǎn)程刪除
      git push origin :refs/tags/v1.0.0
      // 最后可以在gitlab上查看是否真正的刪除了標(biāo)簽
      
  • (3).創(chuàng)建帶有說明的標(biāo)簽娇豫,用-a指定標(biāo)簽名,-m指定說明文字

    // git tag -a 版本號 -m 說明信息 commit版本號
    git tag -a v1.0.0 -m 'version 1.0.0 released' 34372b05(commit版本號)
    // 查看標(biāo)簽詳細(xì)信息
    git show v1.0.0
    

11.參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末畅厢,一起剝皮案震驚了整個濱河市冯痢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖浦楣,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袖肥,死亡現(xiàn)場離奇詭異,居然都是意外死亡振劳,警方通過查閱死者的電腦和手機椎组,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來历恐,“玉大人寸癌,你說我怎么就攤上這事∪踉簦” “怎么了蒸苇?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吮旅。 經(jīng)常有香客問我溪烤,道長,這世上最難降的妖魔是什么庇勃? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任檬嘀,我火速辦了婚禮,結(jié)果婚禮上责嚷,老公的妹妹穿的比我還像新娘鸳兽。我一直安慰自己,他們只是感情好罕拂,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布贸铜。 她就那樣靜靜地躺著,像睡著了一般聂受。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上烤镐,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天蛋济,我揣著相機與錄音,去河邊找鬼炮叶。 笑死碗旅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的镜悉。 我是一名探鬼主播祟辟,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼侣肄!你這毒婦竟也來了旧困?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吼具,沒想到半個月后僚纷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡拗盒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年怖竭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陡蝇。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡痊臭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出登夫,到底是詐尸還是另有隱情广匙,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布悼嫉,位于F島的核電站艇潭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏戏蔑。R本人自食惡果不足惜蹋凝,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望总棵。 院中可真熱鬧鳍寂,春花似錦、人聲如沸情龄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骤视。三九已至鞍爱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間专酗,已是汗流浹背睹逃。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留祷肯,地道東北人沉填。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像佑笋,于是被迫代替她去往敵國和親翼闹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355