34. Git 變基

2018-08-04 14:20 更新

目的

使用 rebase 命令代替 merge 命令。

好,我們回到了第一次合并前的時間點,并且我們想要將 master 中的更改集成到 greet 分支。

這次我們將使用 rebase 命令代替 merge 命令來從 master 分支中引入更改。

$ git checkout greet
$ git rebase master
$ git hist
$ go greet
Switched to branch 'greet'
$
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: added Greeter class
Applying: hello uses Greeter
Applying: updated Rakefile
$
$ git hist
* 2fae0b2 2013-04-13 | Updated Rakefile (HEAD, greet) [Jim Weirich]
* 1c23048 2013-04-13 | Hello uses Greeter [Jim Weirich]
* 62d7ce0 2013-04-13 | Added greeter class [Jim Weirich]
* b59a8c2 2013-04-13 | Added README (master) [Jim Weirich]
* 96ee164 2013-04-13 | Added a Rakefile. [Jim Weirich]
* 0f36766 2013-04-13 | Moved hello.rb to lib [Jim Weirich]
* eb30103 2013-04-13 | Add an author/email comment [Jim Weirich]
* 1f7ec5e 2013-04-13 | Added a comment (v1) [Jim Weirich]
* 582495a 2013-04-13 | Added a default value (v1-beta) [Jim Weirich]
* 323e28d 2013-04-13 | Using ARGV [Jim Weirich]
* 9416416 2013-04-13 | First Commit [Jim Weirich]

合并 VS 變基

變基的最終結(jié)果與合并很相似。greet 分支現(xiàn)在包含它的全部 更改以及來自 master 分支中的所有更改。然而,提交樹卻十 分不同。greet 分支的提交樹已被重寫,以致 master 分支成 為了其提交歷史的一部分。這使提交鏈更加線性,且更易閱讀。

何時變基,何時合并?

不要使用變基……

如果是公開且與其他人共享的分支,那么重寫公開的共享分支 將會搞砸團(tuán)隊中的其他會員。

要是提交分支的精確歷史重要(因為變基將重寫提交歷史)。

根據(jù)上述準(zhǔn)則,我會針對短期生命的本地分支使用變基,而對 公開倉庫的分支使用合并。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號