git相关
1.将 'dev' 变基到 'origin/master
git rebase 是一个本地操作,它只会修改你当前所在分支的提交历史,而不会直接影响远程仓库或任何其他分支。
-
保持提交历史的线性和整洁: 这是
git rebase最主要的目的。 想象一下dev分支是从master分支分叉出来的,并且在dev分支上进行了一些开发。 在此期间,master分支可能也在不断更新。 如果你使用git merge将master分支合并到dev分支,那么dev分支的提交历史会包含一个合并提交,这会使提交历史看起来像一个分支树。 使用git rebase可以避免这种情况,它会将dev分支的提交“移动”到master分支的顶端,使dev分支的提交历史看起来像是直接在master分支上进行开发一样,从而保持提交历史的线性。 -
简化
dev分支的提交历史: 通过将dev分支变基到origin/master,你可以将dev分支上的所有提交都放在origin/master分支的最新提交之后。 这可以使dev分支的提交历史更加清晰,更容易理解。 -
示例:
假设
origin/master分支的提交历史如下:A -> B -> Cdev分支的提交历史如下:A -> D -> E如果你执行
git rebase origin/master命令,那么dev分支的提交历史会变成:A -> B -> C -> D' -> E'其中
D'和E'是D和E的副本,但它们的提交 ID 已经发生了改变。
2. 使 master 分支包含 dev 分支的更改
-
确保你在
dev分支上,并且已经成功地将dev分支变基到origin/master:git checkout dev git rebase origin/master如果在变基过程中出现冲突,请解决冲突并使用
git rebase --continue命令继续变基。 -
切换到
master分支:git checkout master -
将
dev分支合并到master分支:git merge dev这会将
dev分支上的所有更改合并到master分支。 如果出现冲突,请解决冲突。 -
将本地
master分支推送到远程origin/master分支:git push origin master这将把你的本地
master分支的更改推送到远程仓库,使远程master分支也包含dev分支的更改。
- 变基 (rebase):
git rebase origin/master只是将dev分支的起点“移动”到origin/master的最新提交之后,使得dev分支的提交历史看起来像是直接在origin/master分支上进行开发一样。 它并没有修改master分支本身。 - 合并 (merge):
git merge dev才是将dev分支的更改合并到master分支的步骤。 它会在master分支上创建一个新的合并提交,将dev分支的更改包含进来。 - 推送 (push):
git push origin master是将你的本地master分支的更改推送到远程仓库的步骤。 只有执行了这个步骤,远程master分支才会发生变化。
