Git 管理

一、Git 常用操作

  • 提交修改到本地分支

    1.git add .
    2.git commit -m "Add:1.登錄模塊已完成"
    3.git commit --amend  修改上次的提交 已push的代碼無效
    
  • 查看修改

    1.git diff // 提交至?xí)捍鎺旌蟮男薷挠涗?2.git diff dc519c7 // 當(dāng)前與某次提交暫存庫后的修改記錄
    3.git diff dev // 當(dāng)前與 dev 分支比較的修改記錄
    
  • 新建并切換分支

    1.git checkout -b debug
    2.git push origin debug //拉取代碼
    
  • 合并代碼

    1.git merge xxbranch
    
  • 關(guān)聯(lián)遠程分支

    1.git branch --set-upstream-to=origin/xxbranch xxbranch
    
  • 拉取 / 推送代碼到遠端

    1.git fetch // 拉取遠程對應(yīng)分支代碼
    2.git diff // 查看修改
    3.git merge // 合并
    4.git push origin xxbranch
    
    1.git pull // 拉取遠程對應(yīng)分支更新并合并
    2.git push origin xxbranch
    
  • 修改上次 commit 信息

    1.git commit --amend
    
  • 刪除本地分支

    1.git branch -d xxbranch
    
  • 刪除遠程分支

    1. git push origin –-delete xxbranch
    
  • 標(biāo)記 tag

    1.git tag v0.0.1 / git tag -a v0.0.1 -m "v0.0.1版本"
    2.git push origin v0.0.1 // 將本地 v0.0.1 的 tag 推送到遠端服務(wù)器
    3.git push --tags / git push origin --tags // 推送所有 tag 到遠端
    4.git tag // 查看 tag 列表
    5.git show v0.0.1 // 查看 tag 修改信息
    
  • 刪除 tag

    1.git tag -d v0.0.1 // 刪除本地 tag
    2.git push origin :refs/tags/v0.0.1 
    3.git push origin --delete tag // 刪除遠程 tag
    
  • 將當(dāng)前修改存儲至緩存區(qū)

    1.git stash // 將當(dāng)前的修改放到緩存區(qū)
    2.git stash list // 查看 stash 列表
    3.git stash pop // 恢復(fù)至最近一次 stash, 同時刪除該條記錄
    4.git stash apply // 恢復(fù)至最近一次 stash, 記錄還存在 list 中
    5.git stash show stash@{1} // 查看指定 stash 修改
    6.git stash apply stash@{1} // 恢復(fù)至指定 stash
    7.git stash drop stash@{1} // 刪除指定 stash
    8.git stash clear // 刪除所有 stash
    
  • 版本回退 / 回滾

    1.git reset --hard 123456
    2.git revert 123456
    

    針對遠程

    1.自己的分支回滾可直接用 reset
    2.公共分支回滾要用 revert
    

二、線上 bug fix 流程

  • 假定 master 分支為當(dāng)前線上版本分支, 此時線上分支出現(xiàn)了一個 bug 需要緊急修復(fù), 而你此時正在 dev 下的 xxx 分支開發(fā), 該如何操作盛险?

    • 1.如果當(dāng)前開發(fā)已告一段落:
    1.git add .
    2.git commit -m "當(dāng)前功能已完成" 
    3.git checkout master 
    4.git checkout -b debug // 在 master 分支上新建 debug 分支用作修改
    5.git add .
    6.git commit -m "bug 已修改完成" 
    7.git checkout master
    8.git merge debug / git merge --no-ff -m "bug 已修改完成" debug // 合并 debug 分支
    9.git add .
    10.git commit -m "merge debug branch and fixed bug" 
    11.git pull
    12.git push origin master
    13.git branch -d debug // 刪除 debug 分支
    
    • 2.如果當(dāng)前分支功能開發(fā)尚未完成:
    git stash // 保存現(xiàn)場
    順次執(zhí)行上述 1 ~ 13 步
    git checkout xxbranch // 切回修復(fù) bug 之前分支
    git stash pop // 恢復(fù)現(xiàn)場繼續(xù)未完成開發(fā)
    

三腥沽、自己的遠程分支版本回退

1.git reflog 
2.git reset --hard 123456
3.git pushgstrigin xxbranch // 本地分支回滾后版本將落后遠程分支, 必須使用強制推送覆蓋遠程分支

四授翻、公共遠程分支版本回退

  • 模擬情景: 準(zhǔn)備整合代碼打包測試, 此時 devbranch commit 記錄為 A1->A2->B1贯莺。 A2 為提交超前代碼, 需要調(diào)整為 A1-B1, 此時操作?

附錄

一、命令

    1. git add . 將代碼提交到暫存區(qū)
    1. git commit -m "balabala" 將代碼提交到工作區(qū)(本地庫)
    1. git diff 查看提交至?xí)捍鎺旌蟮男薷挠涗?/li>
    1. git checkout xxbranch 切換到某個分支
    1. git checkout -b xxbranch 創(chuàng)建并切換到某個分支
    1. git merge xxbranch 合并某個分支
    1. git merge --no-ff -m "balabala" 合并某個分支(臨時分支用完后一般會刪除, 則無法通過分支查詢歷史記錄, 所以使用臨時分支時需要使用 --no-ff 的方式柱衔,同時寫上 -m 備注信息)
    1. git fetch 拉取遠程對應(yīng)分支
    1. git pull 拉取遠程對應(yīng)分支更新并合并
  • 10.git push origin xxbranch 推送當(dāng)前分支到遠程
  • 11.git push -f origin xxbranch 強制推送當(dāng)前分支到遠程
  • 12.git branch --set-upstream-to=origin/xxbranch xxbranch 本地分支與遠程分支建立關(guān)聯(lián)
  • 13.git stash 將當(dāng)前的修改放到緩存區(qū)
  • 14.git stash list 查看 stash 列表
  • 15.git stash pop 恢復(fù)至最近一次 stash, 同時刪除該記錄
  • 16.git stash apply 恢復(fù)至最近一次 stash, 記錄還存在 list 中
  • 17.git stash show stash@{1} 查看指定 stash 修改
  • 18.git stash apply stash@{1} 恢復(fù)至指定 stash
  • 19.git stash drop stash@{1} 刪除指定 stash
  • 20.git stash clear 刪除所有 stash
  • 21.git branch 查看本地分支列表
  • 22.git branch -a 查看遠程分支列表
  • 23.git tag v0.0.1 標(biāo)記 tag
  • 24.git tag -a v0.0.1 -m "v0.0.1版本" 標(biāo)記 tag 并附帶信息
  • 25.git push origin v0.0.1 將本地 v0.0.1 的 tag 推送到遠端服務(wù)器
  • 26.git push --tags / git push origin --tags 推送所有 tag 到遠端
  • 27.git tag 查看 tag 列表
  • 28.git show v0.0.1 查看 tag 修改信息
  • 29.git reset --hard 123456 版本回退
  • 30.git revert 123456 版本回滾, 會在當(dāng)前基礎(chǔ)上新增 commit 記錄
  • 31.git log 顯示所有提交過的版本信息
  • 32.git reflog 顯示所有提交過的版本信息, 包括已經(jīng)被刪除的 commit 記錄

二樊破、git commit -m "xxx"

  • 提交 log: Action + Message
    • Action: Add / Mod(ified) / Del(ete) / Rem(ove) / Fix / Ref(actor) / Rea(dability)
      • Add 修改
      • Modified 修改
      • Delete Remove 刪除
      • Fix 修復(fù) bug
      • Refactor 重構(gòu)
      • Readability 增加可讀性
    • Message:對應(yīng)的描述信息
  • 示例:git commit -m "Add:添加了發(fā)言功能"

三、權(quán)限分配

四秀存、克隆

git clone + clone 地址

例如

git clone https://amc-msra.visualstudio.com/xxx/_xx/xxxxxx

git clone -b + 要clone的分支名 + 倉庫地址

獲取倉庫地址

git remote -v

例如

git clone -b stock-data-spider-dev https://amc-msra.visualstudio.com/xxxx

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捶码,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子或链,更是在濱河造成了極大的恐慌惫恼,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件澳盐,死亡現(xiàn)場離奇詭異祈纯,居然都是意外死亡,警方通過查閱死者的電腦和手機叼耙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門腕窥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人筛婉,你說我怎么就攤上這事簇爆●桑” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵入蛆,是天一觀的道長响蓉。 經(jīng)常有香客問我,道長哨毁,這世上最難降的妖魔是什么枫甲? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮扼褪,結(jié)果婚禮上想幻,老公的妹妹穿的比我還像新娘。我一直安慰自己话浇,他們只是感情好脏毯,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凳枝,像睡著了一般抄沮。 火紅的嫁衣襯著肌膚如雪跋核。 梳的紋絲不亂的頭發(fā)上岖瑰,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音砂代,去河邊找鬼蹋订。 笑死,一個胖子當(dāng)著我的面吹牛刻伊,可吹牛的內(nèi)容都是我干的露戒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼捶箱,長吁一口氣:“原來是場噩夢啊……” “哼智什!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丁屎,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤荠锭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后晨川,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體证九,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年共虑,在試婚紗的時候發(fā)現(xiàn)自己被綠了愧怜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡妈拌,死狀恐怖拥坛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤猜惋,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布疾党,位于F島的核電站,受9級特大地震影響惨奕,放射性物質(zhì)發(fā)生泄漏雪位。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一梨撞、第九天 我趴在偏房一處隱蔽的房頂上張望雹洗。 院中可真熱鬧,春花似錦卧波、人聲如沸时肿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽螃成。三九已至,卻和暖如春查坪,著一層夾襖步出監(jiān)牢的瞬間寸宏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工偿曙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留氮凝,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓望忆,卻偏偏與公主長得像罩阵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子启摄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

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