真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

聊下gitrebase-i-創(chuàng)新互聯(lián)

在使用git開發(fā)的時候經(jīng)常會面臨一個常見的問題。多個commit 需要合并為一個完整的commit提交。

為碭山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及碭山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、網(wǎng)站設(shè)計、碭山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

我們先說第一個合并多個commit為一個完整的commit

我先基于develop主分支拉出一個功能分支(每個人和每個公司對分支的管理都不太一樣,這里不需要太糾結(jié)。)。這里的develop是開發(fā)主分支,所有的開發(fā)功能代碼都需要回歸到這個develop分支中去。

git branch -a –vv

聊下 git rebase -i

develop_fixbug_p_w_picpathprint 分支是我基于遠程develop分支拉出來的開發(fā)分支,我會基于這個分支來fix一些bug。我們分別看下develop、develop_fixbug_p_w_picpathprint commit log。

git checkout develop

git log

聊下 git rebase -i

git checkout develop_fixbug_p_w_picpathprint

git log

聊下 git rebase -i

develop_fixbug_p_w_picpathprint的commit log是和devleop commit log 一模一樣。我們現(xiàn)在切換到develop_fixbug_p_w_picpathprint進行一些操作。

添加一個1.txt文件,然后git add . ,git commit –m’add 1.txt’。

再添加一個2.txt 文件,然后git add . ,git commit –m’add 2.txt’。
聊下 git rebase -i

現(xiàn)在develop_fixbug_p_w_picpathprint分支里有兩個commit。這兩個commit都是為了fix當前這個bug而做的兩個提交?,F(xiàn)在我們要合并代碼上主develop分支??偛荒馨堰@兩個commit直接提交上去,這里還好只有兩個commit,但是一般項目開發(fā)周期兩個星期的話,你起碼有十幾個commit。那這樣提交上去之后就很難管理和跟蹤。(我以前都是這樣干的,現(xiàn)在發(fā)現(xiàn)這樣不好跟蹤管理。)

那么我們?nèi)绾瓮瓿蛇@個合并commit尼,就需要用到git rebase 命令。

先來解釋下git rebase 。你其實可以把它理解成是“重新設(shè)置基線”,將你的當前分支重新設(shè)置開始點。這個時候才能知道你當前分支于你需要比較的分支之間的差異。

比如,develop_fixbug_p_w_picpathprint分支是來自develop分支,那么從test commit開始后面我們基本上都是各自發(fā)展,現(xiàn)在在develop_fixbug_p_w_picpathprint分支上有兩個commit,我們需要找一個基準,這個基準就是git需要找到哪些是你后來提交的commmit,總的有個參照。

git reabse –i develop

聊下 git rebase -i

git rebase 立馬知道develop與develop_fixbug_p_w_picpathprint之間的差異。因為我們是基于develop設(shè)置rebase的。git rebase –i ,這里的”-i“是指交互模式。就是說你可以干預(yù)rebase這個事務(wù)的過程,包括設(shè)置commit message,暫停commit等等。

這里我們要求很簡單就是合并之前的commit且重新設(shè)置commit message。

我們設(shè)置第二個”pick 657a291 add 2.txt” 為” s 657a291 add 2.txt”這里的s就是squash命令的簡寫。

聊下 git rebase -i

跳出來了一個臨時文件,最上面是兩行commit message。我們修改下這個總體的commit message。

聊下 git rebase -i

刪除之前的兩條message(ESC dd),設(shè)置一總的message 然后保存退出。(ESC wq)

聊下 git rebase -i

我們查看下log。git log

聊下 git rebase -i

是不是沒有了之前的兩個commit。

原理很簡單:rebase需要基于一個分支來設(shè)置你當前的分支的基線,這基線就是當前分支的開始時間軸向后移動到最新的跟蹤分支的最后面,這樣你的當前分支就是最新的跟蹤分支。這里的操作是基于文件事務(wù)處理的,所以你不用怕中間失敗會影響文件的一致性。在中間的過程中你可以隨時取消rebase 事務(wù)。git rebase –abort

在進入git rebase –i 交互模式,你可以做的事情就很多了,可以設(shè)置edit 編輯commit 內(nèi)容,可以讓他暫停commit操作。等等。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站題目:聊下gitrebase-i-創(chuàng)新互聯(lián)
文章起源:http://weahome.cn/article/cojohp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部