Git 管理常用命令

圖片來自官網
由來: 公司最近要進行招人,所以整理了份 Git 的常用命令,以做參考。同時讓自己也進行學習一波。

<center> Git 管理

一、Git 常用操作

  • 提交修改到本地分支

    1.git add .
    2.git commit -m "Add:1.登錄模塊已完成"
    
  • 查看修改

    1.git diff // 提交至暫存庫后的修改記錄
    2.git diff dc519c7 // 當前與某次提交暫存庫后的修改記錄
    3.git diff dev // 當前與 dev 分支比較的修改記錄
    
  • 新建并切換分支

    1.git checkout -b debug
    
  • 合并代碼

    1.git merge xxbranch
    
  • 關聯遠程分支

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

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

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

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

    1.git push origin --delete xxbranch
    
  • 標記 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 推送到遠端服務器
    3.git push --tags / git push origin --tags // 推送所有 tag 到遠端
    4.git tag // 查看 tag 列表
    5.git show v0.0.1 // 查看 tag 修改信息
    
  • 將當前修改存儲至緩存區

    1.git stash // 將當前的修改放到緩存區
    2.git stash list // 查看 stash 列表
    3.git stash pop // 恢復至最近一次 stash, 同時刪除該條記錄
    4.git stash apply // 恢復至最近一次 stash, 記錄還存在 list 中
    5.git stash show stash@{1} // 查看指定 stash 修改
    6.git stash apply stash@{1} // 恢復至指定 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 分支為當前線上版本分支, 此時線上分支出現了一個 bug 需要緊急修復, 而你此時正在 dev 下的 xxx 分支開發, 該如何操作?

    • 1.如果當前開發已告一段落:
    1.git add .
    2.git commit -m "當前功能已完成" 
    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.如果當前分支功能開發尚未完成:
    git stash // 保存現場
    順次執行上述 1 ~ 13 步
    git checkout xxbranch // 切回修復 bug 之前分支
    git stash pop // 恢復現場繼續未完成開發
    

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

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

附錄

一、命令

    1. git add . 將代碼提交到暫存區
    1. git commit -m "balabala" 將代碼提交到工作區(本地庫)
    1. git diff 查看提交至暫存庫后的修改記錄
    1. git checkout xxbranch 切換到某個分支
    1. git checkout -b xxbranch 創建并切換到某個分支
    1. git merge xxbranch 合并某個分支
    1. git merge --no-ff -m "balabala" 合并某個分支(臨時分支用完后一般會刪除, 則無法通過分支查詢歷史記錄, 所以使用臨時分支時需要使用 --no-ff 的方式,同時寫上 -m 備注信息)
    1. git fetch 拉取遠程對應分支
    1. git pull 拉取遠程對應分支更新并合并
  • 10.git push origin xxbranch 推送當前分支到遠程
  • 11.git push -f origin xxbranch 強制推送當前分支到遠程
  • 12.git branch --set-upstream-to=origin/xxbranch xxbranch 本地分支與遠程分支建立關聯
  • 13.git stash 將當前的修改放到緩存區
  • 14.git stash list 查看 stash 列表
  • 15.git stash pop 恢復至最近一次 stash, 同時刪除該記錄
  • 16.git stash apply 恢復至最近一次 stash, 記錄還存在 list 中
  • 17.git stash show stash@{1} 查看指定 stash 修改
  • 18.git stash apply stash@{1} 恢復至指定 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 標記 tag
  • 24.git tag -a v0.0.1 -m "v0.0.1版本" 標記 tag 并附帶信息
  • 25.git push origin v0.0.1 將本地 v0.0.1 的 tag 推送到遠端服務器
  • 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 版本回滾, 會在當前基礎上新增 commit 記錄
  • 31.git log 顯示所有提交過的版本信息
  • 32.git reflog 顯示所有提交過的版本信息, 包括已經被刪除的 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 修復 bug
      • Refactor 重構
      • Readability 增加可讀性
    • Message:對應的描述信息
  • 示例:git commit -m "Add:發言模塊完成."

參考:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,698評論 9 163
  • 文/葉丹穎 沿著山坡 我們像孩子一樣奔跑 仰起高高的頭 把童年再過一遍 把春天再畫一遍 忘記了疲倦 只記得歌唱——...
    樹姑娘閱讀 260評論 0 3
  • 山清水秀太陽高 秋高氣爽清風飄 民眾聚于村道口 等待鏟車到跟前 禮炮點燃氣氛烈 祠堂上香敬先祖 老屋庇護多代人 斷...
    邊邊緣閱讀 235評論 10 4
  • MBTI測試下來,我是ISFP型的,這是“專家型”的人格特質。所謂“專家型”,就是在某領域可以扎的很深,但廣度不夠...
    HelenHuang閱讀 419評論 0 0
  • A果然到了最后一刻,我還是沒有完成任務M明知道是如此,我還是沒有吸取教訓,沒有做計劃是最大的問題B以后一定要倒計時...
    陳珠芳2018閱讀 183評論 0 1