git merge 和git rebase

119 阅读2分钟

git merge 和git rebase

前言:我们在工作常非常常用的两个git命令

git merge 和 git rebase 通常我们用来合并代码

git merge

当我们需要将dev(开发分支)的代码合并到release-dev(生产分支)的时候就需要用到该命令

使用步骤: 1.切换分支到release-dev

2.输入命令:git merge dev(dev分支的代码已经合并到release-dev上),有冲突则解决冲突

git rebase

使用步骤

1.切换到release-dev分支

2.git add .

3.git commit -m "fix:xxx"

4.git rebase dev

5.git push

Rebasing 是将一个分支的修改移植到另一个分支上的一种方式。在你的情况下,你希望将开发分支的代码合并到 dev 分支,可以通过以下步骤使用 rebase 完成:

  1. 确保你在 dev 分支上:

    在执行 rebase 之前,请确保你在 dev 分支上,可以使用以下命令切换到 dev 分支:

    git checkout dev
    
  2. 开始 rebase:

    dev 分支上执行 rebase 命令,将开发分支(假设为 feature-branch)的修改合并到 dev 分支上:

    git pull origin dev   # 确保你的本地 dev 分支是最新的
    git rebase feature-branch
    

    或者,如果你想要交互式地处理 rebase 过程(比如合并多个提交、修改提交信息等),你可以使用:

    git rebase -i feature-branch
    

    然后按照提示进行操作。

  3. 解决冲突:

    如果在 rebase 过程中出现冲突,Git 会提示你解决冲突。解决完冲突后,使用以下命令继续 rebase:

    git rebase --continue
    
  4. 合并到远程 dev 分支:

    一旦 rebase 完成,你可以强制推送 dev 分支到远程仓库:

    git push origin dev --force
    

    请注意,强制推送可能会影响其他人的工作副本,所以请确保在执行之前与团队进行沟通。

在执行 rebase 操作时,请牢记以下几点:

  • 不要在公共分支上进行 rebase: 避免在主分支(如 masterdev)上使用 rebase,因为这可能会影响到其他团队成员。在本地分支上使用 rebase 是安全的。
  • 慎用强制推送: 强制推送会覆盖远程分支的历史,可能导致其他人的工作副本与远程分支不一致。确保在进行强制推送之前与团队进行沟通。
  • 处理冲突: 如果在 rebase 过程中遇到冲突,确保解决冲突后继续 rebase。

总之,使用 rebase 需要小心谨慎,确保了解每个操作的影响,并在团队协作中保持透明沟通。

git merge和git rebase区别在于 git merge 合并会生成一个新的合并节点 而git rebase并不会,git rebase在可视化上看是一条平滑的线条,而git merge会有许多合并节点