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 分支才会发生变化。
相关推荐
春日见9 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
stevenzqzq1 天前
git 常用操作
大数据·git
Curvatureflight1 天前
Git工作流最佳实践:从混乱到优雅
git
wu~9701 天前
GitHub永不遗忘,使用git push -f来覆盖的提交依旧保留
git·github
Vermouth_001 天前
git clone的时候提示access denied
git
qq_437657271 天前
清楚本地的git并重新登录
git
jiang_changsheng1 天前
工作流agent汇总分析 2
java·人工智能·git·python·机器学习·github·语音识别
顶点多余1 天前
版本控制器-git
linux·git
夔曦1 天前
Git工程日常下拉/上传完整流程(自用)
git
岱宗夫up1 天前
GitHub Desktop如何设置中文?这不是个简单问题
git·github