成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Git 工作流

Tecode / 2076人閱讀

摘要:工作流如下圖所示現(xiàn)在讓我們來看一個(gè)最簡(jiǎn)單的分支管理的例子。切換到之前實(shí)現(xiàn)新需求的分支,將修補(bǔ)分支合并進(jìn)來,然后繼續(xù)工作。這里我們參考一文來學(xué)習(xí)工作流。分支產(chǎn)品發(fā)布測(cè)試分支。

Git 工作流如下圖所示:

git-flow.png

現(xiàn)在讓我們來看一個(gè)最簡(jiǎn)單的分支管理的例子。

  1. 開發(fā)某個(gè)網(wǎng)站,為實(shí)現(xiàn)某個(gè)新的需求,創(chuàng)建一個(gè)分支并在這個(gè)分支上開展工作。
  2. 此時(shí),你突然接到一個(gè)電話說有個(gè) Bug 需要緊急修補(bǔ)。
  3. 返回到原先已經(jīng)發(fā)布到生產(chǎn)服務(wù)器上的分支,為這次緊急修補(bǔ)建立一個(gè)新分支,并在其中修復(fù)問題。
  4. 通過測(cè)試后,回到生產(chǎn)服務(wù)器所在的分支,將修補(bǔ)分支合并進(jìn)來,然后再推送到生產(chǎn)服務(wù)器上。
  5. 切換到之前實(shí)現(xiàn)新需求的分支,將修補(bǔ)分支合并進(jìn)來,然后繼續(xù)工作。

這里我們參考 A successful Git branching model 一文來學(xué)習(xí) Git 工作流。

主分支

主分支包括 master 分支和 develop 分支。

  • master 分支
  • develop 分支

master 分支用來發(fā)布,HEAD 就是當(dāng)前線上的運(yùn)行代碼。develop 分支就是我們的日常開發(fā)。使用這兩個(gè)分支就具有了最簡(jiǎn)單的開發(fā)模式:develop 分支用來開發(fā)功能,開發(fā)完成并且測(cè)試沒有問題則將 develop 分支的代碼合并到 master 分支并發(fā)布。

main-branches.png

輔助分支

主要介紹的輔助分支如下:

  • feature 分支
  • release 分支
  • hotfix 分支

通過這些分支,我們可以做到:團(tuán)隊(duì)成員之間并行開發(fā),feature track 更加容易,開發(fā)和發(fā)布并行以及線上問題修復(fù)。輔助分支與主分支的不同點(diǎn):輔助分支是有限的生命期,他們最終會(huì)被移除。

Feature 分支

feature 分支用來開發(fā)具體的功能,一般 fork 自 develop 分支,最終可能會(huì)合并到 develop 分支。比如我們要在下一個(gè)版本增加功能 1、功能 2、功能 3。那么我們就可以起三個(gè) feature 分支:feature1 、 feature2 feature3。(feature 分支命名最好能夠自解釋,這并不是一種好的命名。)隨著我們開發(fā),功能 1 和功能 2 都被完成了,而功能 3 因?yàn)槟承┰蛲瓿刹涣?,那么最終 feature1feature2 分支將被合并到 develop 分支,而 feature3 分支將被干掉。

feature-branches.png

建立 feature 分支并切換到 feature 分支

從 develop 分支建立 feature 分支并切換到 feature 分支。

$ git checkout -b myfeature develop
Switched to a new branch "myfeature"

合并 feature 分支到 develop

$ git checkout develop
Switched to branch develop
$ git merge --no-ff myfeature
Updating ea1b82a..05e9557
(Summary of changes)
$ git branch -d myfeature
Deleted branch myfeature
$ git push origin develop

上面我們 merge 分支的時(shí)候使用了參數(shù) --no-ff,ff 是fast-forward 的意思,--no-ff就是禁用fast-forward。關(guān)于這兩種模式的區(qū)別如下圖。(可以使用 sourceTree 或者命令git log --graph查看。)

merge-without-ff.png
)

看了上面的圖,那么使用非fast-forward模式來 merge 的好處就不言而喻了:我們知道哪些 commit 是某些 feature 相關(guān)的。雖然 git merge 的時(shí)候會(huì)自動(dòng)判斷是否使用fast-farward模式,但是有時(shí)候?yàn)榱烁鞔_,我們還是要加參數(shù)--no-ff或者--ff

Release 分支

release 分支在我看來是 pre-master。release 分支從 develop 分支 fork 出來,最終會(huì)合并到 develop 分支和 master 分支。合并到 master 分支上就是可以發(fā)布的代碼了。有人可能會(huì)問那為什么合并回 develop 分支呢?很簡(jiǎn)單,有了 release 分支,那么相關(guān)的代碼修復(fù)就只會(huì)在 release 分支上改動(dòng)了,最后必然要合并到 develop 分支。下面細(xì)說。

我們最初所有的開發(fā)工作都在 develop 分支上,當(dāng)我們這一期的功能開發(fā)完畢的時(shí)候,我們基于 develop 分支開一個(gè)新的 release 分支。這個(gè)時(shí)候我們就可以對(duì) release 分支做統(tǒng)一的測(cè)試了,另外做一些發(fā)布準(zhǔn)備工作:比如版本號(hào)之類的。

如果測(cè)試工作或者發(fā)布準(zhǔn)備工作和具體的開發(fā)工作由不同人來做,比如國內(nèi)的 RDQA,這個(gè) RD 就可以繼續(xù)基于 develop 分支繼續(xù)開發(fā)了。再或者說公司對(duì)于發(fā)布有嚴(yán)格的時(shí)間控制,開發(fā)工作提前并且完美的完成了,這個(gè)時(shí)候我們就可以在 develop 分支上繼續(xù)我們下一期的開發(fā)了。同時(shí)如果測(cè)試有問題的話,我們將直接在 release 分支上修改,然后將修改合并到 develop 分支上。

待所有的測(cè)試和準(zhǔn)備工作做完之后,我們就可以將 release 分支合并到 master 分支上,并進(jìn)行發(fā)布了。

一些相關(guān)命令如下。

新建 release 分支

$ git checkout -b release-1.2 develop
Switched to a new branch "release-1.2"
$ ./bump-version.sh 1.2
File modified successfully, version bumped to 1.2.
$ git commit -a -m "Bumped version number to 1.2"
[release-1.2 74d9424] Bumped version number to 1.2
1 files changed, 1 insertions(+), 1 deletions(-)

release 分支合并到 master 分支

$ git checkout master
Switched to branch master
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2

release 分支合并到 develop 分支

$ git checkout develop
Switched to branch develop
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)

刪除 release 分支

$ git branch -d release-1.2
Deleted branch release-1.2 (was ff452fe).

Hotfix 分支

顧名思義,hotfix 分支用來修復(fù)線上 bug。當(dāng)線上代碼出現(xiàn) bug 時(shí),我們基于 master 分支開一個(gè) hotfix 分支,修復(fù) bug 之后再將 hotfix 分支合并到 master 分支并進(jìn)行發(fā)布,同時(shí) develop 分支作為最新最全的代碼分支,hotfix 分支也需要合并到 develop 分支上去。仔細(xì)想一想,其實(shí) hotfix 分支和 release 分支功能類似。hotfix 的好處是不打斷 develop 分支正常進(jìn)行,同時(shí)對(duì)于現(xiàn)實(shí)代碼的修復(fù)貌似也沒有更好的方法了.

hotfix-branches.png

一些相關(guān)的命令。

新建 hotfix 分支

$ git checkout -b hotfix-1.2.1 master
Switched to a new branch "hotfix-1.2.1"
$ ./bump-version.sh 1.2.1
Files modified successfully, version bumped to 1.2.1.
$ git commit -a -m "Bumped version number to 1.2.1"
[hotfix-1.2.1 41e61bb] Bumped version number to 1.2.1
1 files changed, 1 insertions(+), 1 deletions(-)

Fix bug

$ git commit -m "Fixed severe production problem"
[hotfix-1.2.1 abbe5d6] Fixed severe production problem
5 files changed, 32 insertions(+), 17 deletions(-)

hotfix 合并到 master

Fix bug 之后,hotfix 合并到 master

$ git checkout master
Switched to branch master
$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2.1

hotfix 合并到 develop 分支

$ git checkout develop
Switched to branch develop
$ git merge --no-ff hotfix-1.2.1
Merge made by recursive.
(Summary of changes)

刪除 hotfix 分支

$ git branch -d hotfix-1.2.1
Deleted branch hotfix-1.2.1 (was abbe5d6).

總結(jié)

  • master 分支:主分支,主要存放已經(jīng)發(fā)布到生產(chǎn)服務(wù)器上的代碼。
  • develop 分支:日常開發(fā)分支,該分支從 master 分支拉取,主要存放著在實(shí)現(xiàn)新的產(chǎn)品需求時(shí)開發(fā)的代碼。
  • feature 分支:日常開發(fā)特性分支。一般從 develop 分支拉取,主要存放著在實(shí)現(xiàn)新產(chǎn)品需求具體功能時(shí)開發(fā)的代碼。具體功能開發(fā)完成之后將合并到 develop 分支。
  • release 分支:產(chǎn)品發(fā)布測(cè)試分支。主要存放著從 develop 分支合并過來的代碼。 develop 分支的代碼在新的產(chǎn)品需求全部實(shí)現(xiàn)后會(huì)合并到 release 分支進(jìn)行測(cè)試,測(cè)試沒有問題后(到了發(fā)布日期)將會(huì)合并到 master 分支并發(fā)布。測(cè)試有問題將會(huì)在 release 分支修改,修改測(cè)試沒問題后將會(huì)合并到 master 分支和 develop 分支。
  • hotfix 分支:線上 bug 修復(fù)分支。主要存放這在緊急修補(bǔ)中為修復(fù)問題開發(fā)的代碼,在測(cè)試沒有問題后將會(huì)合并到 master 分支和 develop 分支。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/125991.html

相關(guān)文章

  • Git常用命令小結(jié)

    摘要:使用此命令能看到那些修改被暫存到了哪些沒有哪些文件沒有被到。需要說明一點(diǎn),是本地的,不會(huì)通過命令上傳到上。查看現(xiàn)有的所有儲(chǔ)藏,此命令顯然暗示了可以多次保存工作進(jìn)度,并用在恢復(fù)時(shí)候選擇。 Git 版本庫原理 Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有Git為我們自動(dòng)創(chuàng)建的第一個(gè)分支master,以及指向master的一個(gè)指針叫HEAD。...

    付倫 評(píng)論0 收藏0
  • Git常用命令小結(jié)

    摘要:使用此命令能看到那些修改被暫存到了哪些沒有哪些文件沒有被到。需要說明一點(diǎn),是本地的,不會(huì)通過命令上傳到上。查看現(xiàn)有的所有儲(chǔ)藏,此命令顯然暗示了可以多次保存工作進(jìn)度,并用在恢復(fù)時(shí)候選擇。 Git 版本庫原理 Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有Git為我們自動(dòng)創(chuàng)建的第一個(gè)分支master,以及指向master的一個(gè)指針叫HEAD。...

    Airmusic 評(píng)論0 收藏0
  • Git 基本命令,你都學(xué)廢了嗎

    摘要:掌握了命令行,使用圖形化工具如探囊取物。管理的文件狀態(tài)已修改已暫存已提交。由于我們使用了命令,但并未創(chuàng)建新的分支,所以創(chuàng)建了一個(gè)匿名分支。省略遠(yuǎn)程分支名表示將本地分支推送到與之存在追蹤關(guān)系的遠(yuǎn)程分支通常同名。概述此篇博文意在讓新手快速上手 Git,滿足工作中的基本需求,而非梳理細(xì)節(jié)。后續(xù)會(huì)再開一個(gè)系列,來探討 Git 細(xì)節(jié)問題。一、Git 的安裝這部分網(wǎng)站上資料非常多,根據(jù)自己的系統(tǒng)版本查找...

    Tecode 評(píng)論0 收藏0
  • Git常用命令

    摘要:工作區(qū)狀態(tài)被改變,用這查看修改內(nèi)容。添加文件到倉庫,分兩步使用命令,注意,可反復(fù)多次使用,添加多個(gè)文件。使用命令,完成。版本回退命令顯示從最近到最遠(yuǎn)的提交日志。要重返未來,用查看命令歷史,以便確定要回到未來哪個(gè)版本。 創(chuàng)建版本庫mkdir learngit 創(chuàng)建learngit目錄cd learngit 進(jìn)入文件夾里pwd 查看目錄路徑git init 初始化倉庫git add re....

    寵來也 評(píng)論0 收藏0
  • Git 系列】基礎(chǔ)知識(shí)全集

    摘要:沒有一個(gè)全局的版本號(hào),而有目前為止這是跟相比缺少的最大的一個(gè)特征。這能確保代碼內(nèi)容的完整性,確保在遇到磁盤故障和網(wǎng)絡(luò)問題時(shí)降低對(duì)版本庫的破壞。合并沖突多人對(duì)同一文件的工作副本進(jìn)行更改,并將這些更改提交到倉庫。Git 是一種分布式版本控制系統(tǒng),它可以不受網(wǎng)絡(luò)連接的限制,加上其它眾多優(yōu)點(diǎn),目前已經(jīng)成為程序開發(fā)人員做項(xiàng)目版本管理時(shí)的首選,非開發(fā)人員也可以用 Git 來做自己的文檔版本管理工具。 ...

    ASCH 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<