git相关

1.将 'dev' 变基到 'origin/master

git rebase 是一个本地操作,它只会修改你当前所在分支的提交历史,而不会直接影响远程仓库或任何其他分支。

  1. 保持提交历史的线性和整洁: 这是 git rebase 最主要的目的。 想象一下 dev 分支是从 master 分支分叉出来的,并且在 dev 分支上进行了一些开发。 在此期间,master 分支可能也在不断更新。 如果你使用 git mergemaster 分支合并到 dev 分支,那么 dev 分支的提交历史会包含一个合并提交,这会使提交历史看起来像一个分支树。 使用 git rebase 可以避免这种情况,它会将 dev 分支的提交"移动"到 master 分支的顶端,使 dev 分支的提交历史看起来像是直接在 master 分支上进行开发一样,从而保持提交历史的线性。

  2. 简化 dev 分支的提交历史: 通过将 dev 分支变基到 origin/master,你可以将 dev 分支上的所有提交都放在 origin/master 分支的最新提交之后。 这可以使 dev 分支的提交历史更加清晰,更容易理解。

  3. 示例:

    假设 origin/master 分支的提交历史如下:

    复制代码
    A -> B -> C

    dev 分支的提交历史如下:

    复制代码
    A -> D -> E

    如果你执行 git rebase origin/master 命令,那么 dev 分支的提交历史会变成:

    复制代码
    A -> B -> C -> D' -> E'

    其中 D'E'DE 的副本,但它们的提交 ID 已经发生了改变。

  4. 使 master 分支包含 dev 分支的更改

  5. 确保你在 dev 分支上,并且已经成功地将 dev 分支变基到 origin/master

    复制代码
    git checkout dev
    git rebase origin/master

    如果在变基过程中出现冲突,请解决冲突并使用 git rebase --continue 命令继续变基。

  6. 切换到 master 分支:

    复制代码
    git checkout master
  7. dev 分支合并到 master 分支:

    复制代码
    git merge dev

    这会将 dev 分支上的所有更改合并到 master 分支。 如果出现冲突,请解决冲突。

  8. 将本地 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 分支才会发生变化。
相关推荐
MatrixOrigin1 小时前
MatrixOne Git4Data 技术详解(二):从零跑通所有 Git 原语
git
anew___2 小时前
常用的 Git 工作流
git
shimly1234562 小时前
git diff 生成一部分文件的补丁
git
m0_579146653 小时前
Git 重置模式详解:四种重置方式的原理与应用场景
git
恋喵大鲤鱼3 小时前
git grep
git·git grep
霸王龙的小胳膊3 小时前
Git基础知识
git
恋喵大鲤鱼4 小时前
git fetch
git·git fetch
Java知识技术分享4 小时前
安装sourcetree
java·git·源代码管理
恋喵大鲤鱼4 小时前
git revert
git·git revert
爱和冰阔落5 小时前
【Codex项目实战】从模糊需求到可验证交付:Plan、测试、Review与Worktree完整流程
人工智能·git·codex