鍍金池/ 教程/ Java/ 第40關(guān) rebase
第13關(guān) stash
第37關(guān) push_branch
附錄A Git 學(xué)習(xí)資源
第54關(guān) submodule
第15關(guān) restructure
第18關(guān) push_tags
第17關(guān) tag
前言
第22關(guān) reset_soft
Githug 安裝和使用方法
第41關(guān) repack
第16關(guān) log
第7關(guān) ignore
第10關(guān) number_of_files_committed
第29關(guān) diff
第1關(guān) init
第4關(guān) commit
第33關(guān) checkout_tag
第20關(guān) commit_in_future
第14關(guān) rename
第39關(guān) fetch
第9關(guān) status
第11關(guān) rm
第27關(guān) remote_add
第3關(guān) add
第24關(guān) remote
第26關(guān) pull
第44關(guān) rename_commit
第23關(guān) checkout_file
第32關(guān) checkout
第55關(guān) contribute
第47關(guān) reorder
關(guān)卡列表
第35關(guān) branch_at
第5關(guān) clone
第45關(guān) squash
第43關(guān) grep
第36關(guān) delete_branch
第53關(guān) conflict
第34關(guān) checkout_tag_over_branch
第42關(guān) cherry-pick
第19關(guān) commit_amend
Githug 通關(guān)攻略
附錄C Vim 常用命令
第48關(guān) bisect
第46關(guān) merge_squash
第2關(guān) config
附錄B Linux 常用命令
第21關(guān) reset
第50關(guān) find_old_branch
第12關(guān) rm_cached
第8關(guān) include
第31關(guān) branch
第49關(guān) stage_lines
第30關(guān) blame
第52關(guān) restore
第51關(guān) revert
第28關(guān) push
第25關(guān) remote_url
第40關(guān) rebase
第38關(guān) merge
第6關(guān) clone_to_folder

第40關(guān) rebase

We are using a git rebase workflow and the feature branch is ready to go into master. Let's rebase the feature branch onto our master branch.

我們使用了 git rebase 工作流,feature 分支準(zhǔn)備合并到 master。rebase 這個 feature 分支到我們的 master 分支之上。

在第28關(guān)我們曾經(jīng)使用過一次 git rebase 命令,現(xiàn)在我們再詳細講解一下。

git rebasegit merge 都是用來合并,各有優(yōu)缺點,所以有些團隊會約定合并時只能用 git merge 或只能用 git rebase,如果約定只能用 git rebase 來合并,這種工作方式就被稱為 'git rebase 工作流'。在用 git rebase 合并分支時,合并后的日志并非按各分支的提交時間排列,而是把一個分支的日志全部排列在另一個分支的日志之上,即使它們是并行開發(fā)的,在開發(fā)過程中交錯提交,但看起來也好像是按先后順序開發(fā)的一樣。

以本題為例,master 是主線,從 master 創(chuàng)建出 feature 分支,此后,master 提交了一次,提交說明是 “add content”,feature 也提交了一次,提交說明是 “add feature”,這時在 master 上執(zhí)行以下命令:

$ git rebase feature

那么 master 的日志就會變成 "add content" 在 "add feature" 之上。

而反過來,如果是在 feature 上執(zhí)行以下命令:

$ git rebase master

那么 feature 的日志就會變成 "add feature" 在 "add content" 之上。

第40關(guān)過關(guān)畫面如下:

http://wiki.jikexueyuan.com/project/githug-walkthrough/images/level-40-rebase.png" alt="第40關(guān) rebase" />