在使用git開發(fā)的時(shí)候經(jīng)常會面臨一個(gè)常見的問題。多個(gè)commit 需要合并為一個(gè)完整的commit提交。
合并多個(gè)commit為一個(gè)完整的commit
我先基于develop主分支拉出一個(gè)功能分支(每個(gè)人和每個(gè)公司對分支的管理都不太一樣,這里不需要太糾結(jié)。)。這里的develop是開發(fā)主分支,所有的開發(fā)功能代碼都需要回歸到這個(gè)develop分支中去。
git branch -a –vv
develop_fixbug_imageprint 分支是我基于遠(yuǎn)程develop分支拉出來的開發(fā)分支,我會基于這個(gè)分支來fix一些bug。我們分別看下develop、develop_fixbug_imageprint commit log。
git checkout develop
git log
git checkout develop_fixbug_imageprint
git log
develop_fixbug_imageprint的commit log是和devleop commit log 一模一樣。我們現(xiàn)在切換到develop_fixbug_imageprint進(jìn)行一些操作。
添加一個(gè)1.txt文件,然后git add . ,git commit –m’add 1.txt’。
再添加一個(gè)2.txt 文件,然后git add . ,git commit –m’add 2.txt’。
現(xiàn)在develop_fixbug_imageprint分支里有兩個(gè)commit。這兩個(gè)commit都是為了fix當(dāng)前這個(gè)bug而做的兩個(gè)提交?,F(xiàn)在我們要合并代碼上主develop分支??偛荒馨堰@兩個(gè)commit直接提交上去,這里還好只有兩個(gè)commit,但是一般項(xiàng)目開發(fā)周期兩個(gè)星期的話,你起碼有十幾個(gè)commit。那這樣提交上去之后就很難管理和跟蹤。(我以前都是這樣干的,現(xiàn)在發(fā)現(xiàn)這樣不好跟蹤管理。)
那么我們?nèi)绾瓮瓿蛇@個(gè)合并commit尼,就需要用到git rebase