修改歷史版本——同步到當(dāng)前版本
當(dāng)前版本的支付寶頁面修改一半的過程中,老版本的微信支付出現(xiàn)BUG缆蝉,需放下手里工作去修復(fù)歷史版本晓铆。
開一個新的分支贮匕,不要直接在歷史版本1.0直接改
[1] 創(chuàng)建新分支編寫——阿里支付
git checkout -b alipay master3.0 //創(chuàng)建新分支alipay姐仅,指定的當(dāng)前進行的版本同步到新分支
// coding 編寫阿里支付代碼
git add .
git commit -m "add alipay" //提交保存到分支
>合并分支可以以后提交。視情況而定
git checkout master3.0 //切換到歷史主版本master3.0版本下
git merge alipay //把改過后的內(nèi)容合并到主版本內(nèi)
[2] 創(chuàng)建新分支修改——微信支付
git checkout -b weixinpay master1.0 //創(chuàng)建新分支 weixinpay,把指定的歷史版本 master1.0同步到新分支
// coding 修改微信代碼
git add .
git commit -m "update master1.0 weixinpay " //提交
git checkout master1.0 //切換到歷史主版本master1.0版本下
git merge weixinpay //把改過后的內(nèi)容合并到主版本內(nèi)
[3]
git checkout master3.0 //切換到歷史主版本master3.0版本下
git merge weixinpay //把改過后的內(nèi)容合并到主版本內(nèi)
[4]舊數(shù)據(jù)與新數(shù)據(jù)有沖突
手動打開沖突的文件
<<<<<注釋是相同的部分萍嬉,可以刪除無用的代碼
最終提交
git branch --no-merged # 查看尚未被合并到當(dāng)前分支的分支
git add.
git commit -m '合并分支修改沖突部分后提交'乌昔;
git branch --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支、
git branch -d <branch> # 刪除某個分支
git branch -D <branch> # 強制刪除某個分支 (未被合并的分支被刪除的時候需要強制)
…………………………完…………………………
以下是關(guān)于分支的相關(guān)命令對照表
Git 本地分支管理
版本/分支查看壤追、切換磕道、創(chuàng)建和刪除分支
簡寫對照 co==checkout/br===branch
git branch -r # 查看遠程分支
git branch <new_branch> # 創(chuàng)建新的分支
git branch -v # 查看各個分支最后提交信息
git branch --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支
git branch --no-merged # 查看尚未被合并到當(dāng)前分支的分支
git checkout <branch> # 切換到某個分支
git checkout -b <new_branch> # 創(chuàng)建新的分支,并且切換過去
git checkout -b <new_branch> <branch> # 基于branch創(chuàng)建新的new_branch
git checkout $id # 把某次歷史提交記錄checkout出來行冰,但無分支信息溺蕉,切換到其他分支會自動刪除
git checkout $id -b <new_branch> # 把某次歷史提交記錄checkout出來,創(chuàng)建成一個分支
git branch -d <branch> # 刪除某個分支
git branch -D <branch> # 強制刪除某個分支 (未被合并的分支被刪除的時候需要強制)
分支合并和rebase
git merge <branch> # 將branch分支合并到當(dāng)前分支
git merge origin/master --no-ff # 不要Fast-Foward合并悼做,這樣可以生成merge提交