gpt4 book ai didi

git - 在 git 中,fetch 与 pull 有何不同,merge 与 rebase 有何不同?

转载 作者:IT王子 更新时间:2023-10-29 01:18:12 27 4
gpt4 key购买 nike

我只是不明白这一点。我在网上和书籍上阅读了很多东西,但有些东西并没有留在我的脑海里。有人可以给我以下的虚拟版本吗:

  • git fetch 与 pull
  • git merge 与 rebase

最佳答案

获取与 pull

fetch 将从远程*分支下载任何更改,更新您的存储库数据,但保持本地*分支不变。

pull 将执行 fetch 并将更改merge 到您的本地分支。

有什么区别? pull 使用 pull 分支的更改更新您的本地分支。 fetch 不会推进您的本地分支。

merge 与 rebase

鉴于以下历史:

          C---D---E local         /    A---B---F---G remote

merge 将两个开发历史连接在一起。它通过在远程分支之上发散之后重放本地分支上发生的更改并将结果记录在新的提交中来实现这一点。此操作保留每个提交的祖先。

merge 的效果是:

          C---D---E local         /         \    A---B---F---G---H remote

rebase 将获取本地分支中存在的提交,并将它们重新应用到远程分支之上。此操作会重写您本地提交的祖先。

rebase 的效果是:

                  C'--D'--E' local                 /    A---B---F---G remote

有什么区别? merge 不会更改提交的祖先。一个 rebase 重写本地提交的祖先。

* 这个解释假设当前分支是一个本地分支,并且这个分支被指定为参数给fetch, pull, merge,或者rebase是远程分支。这是通常的情况。例如,pull 将从指定 分支下载任何更改,更新您的存储库并将更改 merge 当前 分支。

关于git - 在 git 中,fetch 与 pull 有何不同,merge 与 rebase 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14894768/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com