Git merge 与 Git rebase 与 Git fetch

Git merge 与 Git rebase

看这个图就行了

git mergegit rebasegit fetch 是 Git 中的三个不同的命令,它们分别用于不同的目的。以下是它们的主要区别:

  1. git merge(合并):

    • 用途: 用于将一个分支的更改合并到另一个分支。
    • 特点: 创建一个新的合并提交,将两个分支的历史合并在一起。产生一个合并的分支历史,可以保留原始分支的完整历史。
    • 适用场景: 通常用于将一个分支的更改合并到另一个分支,保留清晰的分支分离。
    # 示例:将 feature-branch 的更改合并到 main 分支
    git checkout main
    git merge feature-branch
    
  2. git rebase(变基):

    • 用途: 用于将一个分支的更改合并到另一个分支,但与合并不同,它创建一个线性的提交历史。
    • 特点: 移动或合并提交,将当前分支的更改应用在目标分支的最新提交之上。不会创建合并提交,使提交历史更为线性。
    • 适用场景: 用于保持提交历史的干净和线性,特别是在为拉取请求准备分支时。
    # 示例:将 feature-branch 的更改变基到 main 分支
    git checkout main
    git rebase feature-branch
    
  3. git fetch(难点):

    • 用途: 从远程存储库中获取最新的更改,但不自动合并到当前工作分支。
    • 特点: 更新本地仓库的远程跟踪分支,使它们反映远程存储库的最新状态,但并不会更改工作目录中的文件。
    • 适用场景: 用于查看远程仓库的最新更改,然后决定是否将这些更改合并到本地分支。

记住这个就够了

git pull = git fetch + git merge

# 示例:获取远程仓库的最新更改,但不合并到当前分支
git fetch origin

假设你有一个远程仓库(通常称为 “origin”)和一个本地分支(例如,main 分支)。在远程仓库中,有一些新的提交,但你的本地仓库并没有跟踪这些更改。

执行 git fetch 的过程如下:

  1. 查看当前状态: 在执行 git fetch 之前,你可以使用以下命令查看当前状态:

    git status
    

    如果有未提交的更改,可以选择提交或者保存更改。

  2. 执行 git fetch 执行以下命令:

    git fetch origin
    

    这会将远程仓库(origin)的最新更改拉取到本地,但并不会自动合并到你的当前分支。

  3. 查看新的分支状态: 查看远程仓库的分支状态,可以使用以下命令:

    git branch -a
    

    这将显示本地分支和远程分支的列表。你会看到类似 origin/main 的远程分支。

  4. 切换到本地分支: 如果你想要合并这些远程更改到你的本地分支,可以执行以下命令:

    git checkout main
    

    或者使用以下命令创建并切换到一个新的本地分支:

    git checkout -b new-branch-name origin/main
    

    这将创建一个新的本地分支,并将其设置为跟踪远程仓库的 main 分支。

  5. 查看新的更改: 查看本地分支的最新更改:

    git log
    

    这将显示远程仓库的最新提交,你可以选择合并或者进一步处理这些更改。

git fetch 用于获取远程仓库的最新更改,但不会自动将其合并到当前分支。这使你能够在决定是否合并之前查看和理解远程仓库的更改。

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码有点萌

谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值