Merge 和 Rebase 的区别
Merge
merge 命令会保留所有commit 的历史时间。每个人对代码的提交是各是各样的。尽管这些时间对程序本身并没有任何意义,但是merge 的命令初衷就是为了保留这些时间不会被修改。这样就形成了以merge 时间为基准的网状历史结构。每个分支上都会继续保留各自的代码记录,主分支上只保留merge的历史记录。子分支随时都有可能被删除。子分支删除之后,你能看到的记录就是merge某branch 到某branch 上了。这个历史记录时没有意义的。
Rebase
rebase 始终把你最新的修改放到最前头。比如你对主branch 进行rebase 以后,你的所有修改就会在主branch 当前所有的修改之前。你会更有信心保证你的代码运行畅通无阻。
操作
===1 切换主分支
git checkout master
===2 主分支拉代码
git pull
===3 切换到自己个性分支
git checkout -b feature1
===4 自己个性分支变基到最新master 分支,
===自己feature1 分支就有了最新的master代码
git rebase master
===5 切换到主分支
git checkout master
===6 master分支变基到最新的 自己的个性分支
git rebase feature1
步骤1
开发前先同步线上最新代码
步骤2
自己在现有master 分支基础上创建自己个性分支 feature1 并进行代码开发
步骤3
有人在master 提交最新的代码,因此个人切换为master 分支拉去最新的代码。
git checkout master
git pull
步骤4
将自己个性分支切换到最新的master 分支上
git rebase master
步骤5
将自己个性分支与master 分支相合并
git checkout matser
git rebase feature