项目实战Git团队操作_图形化版本
生活随笔
收集整理的這篇文章主要介紹了
项目实战Git团队操作_图形化版本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、分支思路
- 1. Git命令常用理解記憶
- 2. 分支換分規則
- 3. 線上發布準備
- 二、 實戰前期準備
- 2.1. 在遠程倉庫創建kernel_system項目
- 2.2. 將遠程倉庫克隆到本地
- 2.3. 本地準備操作
- 三、場景實戰
- 模擬提交
- 3.1. Git合并某個分支的某/多次提交到指定分支
- 3.2. Git合并分支
- 3.3. 回滾/撤銷指定某一/多次提交(建議使用,雁過留聲、人過留名)
- 3.4. Git合并沖突
- 3.5. Git刪除中間某一/多次提交記錄和提交的文件
- 3.6. 撤銷回滾未未添加至暫存區文件
- 3.7. 回退到以前的指定版本,之后提交的記錄和提交的文件全部刪除
一、分支思路
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 遠程項目地址2. 分支換分規則
企業git倉庫搭建思路:
一般企業根據不同的環境劃分為不同的分支,常見的分支劃分策略如下:
| local | 本地開發環境 | 本地開發+單元測試 |
| dev | 技術開發環境 | 技術測試,有專門的測試人員 |
| test | 回歸測試環境 | 模擬生產線上環境預測試 |
| uat | 壓測環境 | 測試服務器瓶頸 |
| prod(master) | 生產環境 | 線上已發布,正在正式運行的項目 |
3. 線上發布準備
一般正式環境發布之前會做這幾件事:
| ① | 拆板 | 把與自己無關的版本拆除調 |
| ② | 合版 | 核對自己發布文件版本 |
| ③ | 發布 | 將核對無誤的版本發布到測試環境 |
| ④ | 技術測試 | 測試發布后的程序,有問題讓開發協助修改,沒問題發布回歸測試環境 |
| ⑤ | 回歸測試 | 測試技術環境沒問題的功能點,模擬生產測試(此環境和生產環境一樣的) |
| ⑥ | 上線 | 發布回歸測試環境,測試成功的功能點 |
二、 實戰前期準備
1.在遠程倉庫創建kernel_system項目 2.將遠程倉庫克隆到本地 3.初始化項目,添加一個README.txt文件項目說明 4.分別基于master分支,創建local、dev、test分支,分別代表不同的開發或者測試環境,開發/測試/發布只需要切換分支即可。 分支對照表: master-生產 local-本地開發 dev-技術測試 test-回歸測試分支 5.將本地創建的local、dev、test分支推送至遠程的版本庫2.1. 在遠程倉庫創建kernel_system項目
2.2. 將遠程倉庫克隆到本地
git clone git@gitee.com:gb_90/kernel_system.git2.3. 本地準備操作
實現流程: 3.初始化項目,添加一個README.txt文件項目說明 4.分別基于master分支,創建local、dev、test分支,分別代表不同的開發或者測試環境,開發/測試/發布只需要切換分支即可。 分支對照表: master-生產 local-本地開發 dev-技術測試 test-回歸測試分支 5.將本地創建的local、dev、test分支推送至遠程的版本庫 #master分支操作 cd kernel_system echo "project desc" >>README.TXT vim README.TXT 添加內容: master 分支線上發布分支 git push origin master#local分支操作 git checkout master git checkout -b local vim README.TXT 添加內容: local 分支本地開發分支 git push origin local#dev分支操作 git checkout master git checkout -b dev vim README.TXT 添加內容: dev 分支技術測試分支 git push origin dev#test分支操作 git checkout master git checkout -b test vim README.TXT 添加內容: test 分支回歸測試分支 git push origin 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-commit3.1. Git合并某個分支的某/多次提交到指定分支
緊急發布變更: zhangsan的3個功能點和lisi的2個功能點都要發布測試, wangwu的2個功能點暫時不發布。明確要做的事情: zhangsan和lisi的5個功能點從local分支要發布到dev分支去申請技術測試。應該如何操作呢? 方案1((建議使用,這樣不會出錯): 正常流程,在dev分支,將zhangsan的3次提交和lisi的2次提交,合并到dev分支即可。需要合并5次提交,因為每一次提交就是一個功能點,一條合并提交命令即可。合并前截圖:
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即可 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
3.3. 回滾/撤銷指定某一/多次提交(建議使用,雁過留聲、人過留名)
- 回滾/撤銷指定某一/多次提交(建議使用,雁過留聲、人過留名)
- 撤銷回滾已經提交的文件
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 commit -m"merge dev"3.5. Git刪除中間某一/多次提交記錄和提交的文件
- Git刪除中間某一/多次提交記錄和提交的文件
(明確風險后,執行操作,這次作用于特殊情況下)
3.6. 撤銷回滾未未添加至暫存區文件
撤銷回滾未未添加至暫存區都使用 git checkout
撤銷工作區已經修改但是尚未添加至暫存區的文件恢復
git checkout .
如果,只想恢復a.js
git checkout a.js
這樣就可以恢復到修改前之前的a.js的狀態
3.7. 回退到以前的指定版本,之后提交的記錄和提交的文件全部刪除
回退到以前的指定版本,之后提交的記錄和提交的文件全部刪除
git reset --hard 指定回退的提交的<commitid>總結
以上是生活随笔為你收集整理的项目实战Git团队操作_图形化版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第4篇:Flowable快速工作流脚手架
- 下一篇: 第6篇:Flowable快速工作流脚手架