日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

创新小组 实战Git团队企操作手册_精华版本

發布時間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 创新小组 实战Git团队企操作手册_精华版本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 一、入門試煉
      • 1. Git命令理解+準則
      • 2. Git分支換分思路
      • 3. 線上發布準備
    • 二、 實戰前期準備
    • 二、場景實戰
      • 模擬提交準備
      • 3.1. Git合并某個分支的某一/多次提交到指定分支
      • 3.2. Git合并分支
      • 3.3. 回滾/撤銷指定某一/多次提交(建議使用,雁過留聲、人過留名)
      • 3.4. Git合并沖突
      • 3.5. Git刪除中間某一/多次提交記錄和提交的文件
      • 3.6. 撤銷回滾未未添加至暫存區文件
      • 3.7. 回退到以前的指定版本,之后提交的記錄和提交的文件全部刪除

這篇Git團隊操作手冊,模擬企業真實不同場景,實戰團隊一起怎樣使用Git?
為什么這樣使用Git?由我的真實經驗總結而成,希望能夠幫助小伙伴們提前熟悉企業中是怎樣使用Git的環境。

一、入門試煉

1. Git命令理解+準則

1.初始化倉庫用 git init 2.提交用git commit -m"提交說明" 3.推送遠程用git push origin 本地分支名 4.拉取項目用 git clone 項目地址 5.回退文件人2種:未提交用git checkout提交后的用git revert 6.刪除姿勢有2步:刪除指定提交和提交文件用git rebase 回退到之前的指定提交歷史節點,刪除之后的提交記錄和提交文件用:git reset --hard 7.更新項目用git pull 8.和遠程倉庫建立連接:git remote add origin 遠程項目地址擴展彩蛋: 9. 禁止向集成分支執行那些操作命令?1> 禁止向集成分支執行變更歷史的操作<git rebase -i>2> 禁止向集成分支執行刪除提交記錄和提交文件的操作<git rebase -i>3> 禁止向集成分支執行強制推送遠程操作操作git push -f origin <本地分支名>

2. Git分支換分思路

一般企業根據不同的環境劃分為不同的分支,這樣做的好處就是,分工明確、互不影響。簡言之,開發負責開發、測試只負責測試。
常見的分支劃分策略如下:

分支名說明備注
local本地開發環境本地開發+單元測試
dev技術開發環境技術測試,有專門的測試人員
test回歸測試環境模擬生產線上環境預測試
uat壓測環境測試服務器瓶頸
master(prod)生產環境線上已發布,正在正式運行的項目

3. 線上發布準備

一般正式環境發布之前會做這幾件事:

分支名說明備注
拆板把與自己無關的版本拆除調
合版核對自己發布文件版本
發布將核對無誤的版本發布到測試環境
技術測試測試發布后的程序,有問題讓開發協助修改,沒問題發布回歸測試環境
回歸測試測試技術環境沒問題的功能點,模擬生產測試(此環境和生產環境一樣的)
發布上線發布回歸測試環境,測試成功的功能點

二、 實戰前期準備

1.在遠程倉庫創建kernel_system項目 2.將遠程倉庫克隆到本地 3.初始化項目,添加一個README.txt文件項目說明 4.分別基于master分支,創建local、dev、test分支, 分別代表不同的開發或者測試環境,開發/測試/發布只需要切換分支即可。分支對照表: master-生產分支 local-本地開發 dev-技術測試分支 test-回歸測試分支 5.將本地創建的local、dev、test分支推送至遠程的版本庫

二、場景實戰

模擬提交準備

zhangsan提交3次,模擬做了3個功能點,lisi提交2次模擬做了2個功能點,wangwu提交2次模擬做了2個功能點

#lcoal 本地分支 #zhangsan 提交3次 git checkout local echo "1" >> a.txt git add a.txt git commit -m"zhangsan 第1次提交" echo "2" >> b.txt git add b.txt git commit -m"zhangsan 第2次提交" echo "3" >> c.txt git add c.txt git commit -m"zhangsan 第3次提交"#lisi 提交2次 git checkout local echo "1" >> 1.txt git add 1.txt git commit -m"lisi第1次提交" echo "2" >> 2.txt git add 2.txt git commit -m"lisi第2次提交"#wangwu 提交2次 git checkout local echo "1" >> h.txt git add h.txt git commit -m"wangwu 第1次提交" echo "2" >> j.txt git add j.txt git commit -m"wangwu 第2次提交"查看所有的提交記錄: git log --pretty=oneline --abbrev-commit

3.1. Git合并某個分支的某一/多次提交到指定分支

  • Git合并某個分支的某/多次提交到指定分支
緊急發布變更: zhangsan的3個功能點和lisi的2個功能點都要發布測試, wangwu的2個功能點暫時不發布。明確要做的事情: zhangsan和lisi的5個功能點從local分支要發布到dev分支去申請技術測試。應該如何操作呢? 方案1((建議使用,這樣不會出錯): 正常流程,在dev分支,將zhangsan的3次提交和lisi的2次提交,合并到dev分 支即可。需要合并5次提交,因為每一次提交就是一個功能點,一條合并提交命令 即可。 方案1: 在lcoal分支上查看所有的提交記錄,等會我們會用到提交<commitId>進行合并 提交處理 #查看Git提交記錄 git log --pretty=oneline --abbrev-commit #切換至dev分支 git checkout dev #查看 ls # Git合并某個分支的某/多次提交到指定分支 git cherry-pick 26844fb 9abaf33 3e46869 a03beb1 9240aef

3.2. Git合并分支

前提:基于dev技術測試環境已經把zhangsan、lisi、wangwu的 功能測試沒問題。大版本發布變更: zhangsan的3個功能點、lisi的2個功能點以及wangwu的2個功能 點都要發布回歸測試。明確要做的事情: zhangsan和lisi的5個功能點從local分支要發布到dev分支去申 請技術測試。應該如何操作呢? 方案1((建議使用,這樣不會出錯): 正常流程,在dev分支,將zhangsan的3次提交和lisi的2次提交, 合并到dev分支即可。需要合并5次提交,因為每一次提交就是一個 功能點,一條合并提交命令即可。 案例演示: #這里剛才已經dev上有zhangsan、lisi的的5個功能點了,只要把 wangwu的2個功能點,從local分支合并到dev即可 #將這2次提交(a52cf77 de17f44)合并到當前分支(不限制哪個分支) git cherry-pick a52cf77 de17f44 #在dev分支上查看所有的提交記錄,等會我們會用到提交<commitId>進行合并提交處理 git log --pretty=oneline --abbrev-commit #切換到test分支,把dev分支上zhangsan、lisi、wangwu的7次提交合并到test分支 git checkout test #將一下提交合并到當前分支 git cherry-pick 6b0aa2f 8bbaf28 bf697f7 877d827 08d24a0 4297a8d efbaa86 方案2: 前提:以前dev分支和test代碼都是一樣的,只是在dev分支上新增的這7次提交記錄,在test分支是沒有的。 在這種場景下,直接合并分支即可,換言之,把dev分支合并到test分支 git checkout test #將dev分支合并到當前的test分支 git merge dev

3.3. 回滾/撤銷指定某一/多次提交(建議使用,雁過留聲、人過留名)

  • 回滾/撤銷指定某一/多次提交(建議使用,雁過留聲、人過留名)
  • 撤銷回滾已經提交的文件
背景:在dev分支上,zhangsan、lisi、wangwu一共有7次提交。現象:但是,在打包編譯的時候發現,zhangsan、lisi、wangwu將在本地測試好的代碼從local分支合并到dev分支后,編譯出現錯誤。問題定位:經過查看由于wangwu同事在我不知情的情況下,由于wangwu的2次錯誤提交導致的。解決方案(措施):因此,和wangwu說明zhangsan、lisi的功能屬于緊急發布著急上線,于是,在和wangwu協商后,決定將wangwu的2次錯誤提交記錄進行回滾/撤銷。發布完成后:待zhangsan、lisi他們功能上線后,wangwu再將2次錯誤的提交在local修改后,重新合并到dev分支,重新編譯打包,進行發布技術測試環境。 #執行原則:只要撤銷指定錯誤提交修改的文件即可 #1.找到要回滾/撤銷的提交的<commitid> git log --pretty=oneline --abbrev-commit#2.假設撤銷wangwu的4297a8d efbaa86 提交 git revert 4297a8d efbaa86 執行上面命令后,會進入【2次命令窗口】(提交記錄 /1),讓你添加回滾指定提交的【簡要說明】,默 認,按esc :wq保存即可。回滾之后,可以看到wangwu的2次提交(4297a8d efbaa86)記錄還有,但是,2次提交文件都回滾了(從dev分支消失了)。 同步遠程分支 git push origin dev

3.4. Git合并沖突

git默認自動幫我們合并的,但是也是有前提的。 假設: 在dev分支上有一個README.TXT文件,內容如下: 企業項目實戰Git團隊操作 dev 分支 技術測試環境在test分支上有一個README.TXT文件,內容如下: 企業項目實戰Git團隊操作 test 分支 回歸測試分支如果這個文件的內容,都不在同一行,git會自動幫我們進行合并沖突。但是假設: dev分支上的README.TXT文件的“dev 分支 技術測試環境” 這句話在第2行; test分支上的README.TXT文件的“test 分支 回歸測試分支” 這句話README.TXT文件也在第2行。在test分支執行git merge dev,這樣就會出現版本沖突,如果 不顯示,你在執行切換分支操作時就是提示你。 如下操作記錄日志: Administrator@PC-201911062145 MINGW64 ~/Desktop/kernel_system (test|MERGING) $ git checkout dev error: you need to resolve your current index first README.TXT: needs merge

解決方案:

解決沖突即可: vim README.TXT 編輯前內容如下: 企業項目實戰Git團隊操作 master 分支 線上發布分支 <<<<<<< HEAD test 分支 回歸測試分支 ======= dev 分支 技術測試環境 >>>>>>> dev有3種解決方案 方案1: dev那句話和test那句話 都保存 方案2: 刪除dev那句話保存test那句話 方案3: 刪除test那句話保存dev那句話這個就要根據實際需求而言了,這里我選擇方案1(都保存)進行演示: 解決沖突后文件的內容如下: 企業項目實戰Git團隊操作 master 分支 線上發布分支 test 分支 回歸測試分支 dev 分支 技術測試環境#將修改文件添加至暫存區 git add README.TXT #將暫存區文件提交的本地Git倉庫 git commit -m"merge dev"

3.5. Git刪除中間某一/多次提交記錄和提交的文件

  • Git刪除中間某一/多次提交記錄和提交的文件
    (明確風險后,執行操作,這次作用于特殊情況下)
代碼更新發現編譯出錯,后來發現其他人的一次代碼提交導致的,并且修改量很大,不好恢復成原來的,就想把這筆提交刪除掉,不影響工作。 具體步驟: #1.首先git log查看提交記錄,找到【出錯的前一筆】提交的commit_id #2.用命令git rebase -i commit_id ,查找提交記錄 #3.將出錯那筆提交的pick改為drop #4.Esc,:wq #5.同步遠程倉庫(注釋本地和遠程文件及提交記錄是不一樣的,在明確風險的情況下,因此采用強退) git push -u -f origin master 完成! 案例浮現: 背景:在test分支上,zhangsan、lisi、wangwu一共有7次提交。但是,在打包 編譯的時候發現,zhangsan、lisi、wangwu將在本地測試好的代碼從local分 支合并到dev分支后,編譯出現錯誤,經過查看由于wangwu同事在我不知情的情 況下,由于wangwu的2次錯誤提交導致的。因此,和wangwu說明zhangsan、lisi 的功能屬于緊急發布著急上線,于是,在和wangwu協商后,決定將wangwu的2次 錯誤提交記錄和提交的文件進行刪除。待zhangsan、lisi他們功能上線后,wangwu再將 2次錯誤的提交在local修改后,重新合并到dev分支,重新編譯打包,進行發布 技術測試環境。 git checkout test #找到刪除的指定提交<commitid> git log --pretty=oneline --abbrev-commit git rebase -i 8743310 #3.將出錯那筆提交的pick改為drop #4.Esc,:wq #5.同步遠程倉庫(注釋本地和遠程文件及提交記錄是不一樣的,在明確風險的情況下,因此采用強退) git push -u -f origin master

3.6. 撤銷回滾未未添加至暫存區文件

撤銷回滾未未添加至暫存區都使用git checkout
撤銷工作區已經修改但是尚未添加至暫存區的文件恢復
git checkout .
如果,只想恢復a.js
git checkout a.js
這樣就可以恢復到修改前之前的a.js的狀態

3.7. 回退到以前的指定版本,之后提交的記錄和提交的文件全部刪除

回退到以前的指定版本,之后提交的記錄和提交的文件全部刪除

git reset --hard 指定回退的提交的<commitid> git push -f origin dev

總結

以上是生活随笔為你收集整理的创新小组 实战Git团队企操作手册_精华版本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。