【适合Git初学者】git fetch、git merge、git pull 的区别在哪里

首先

這是針對剛開始使用 Git 或使用了一段時間但對於 git fetch、git merge、git pull 的區別不太了解的人的解說。

总述

    • git fetch

 

    • git merge

 

    • git pull

 

    よくある勘違い

拉取git仓库

Git fetch 是一种命令,

将远程仓库的信息提取出来

将本地存储库复制到远程跟踪分支。

git_fetch.png

可能な限り多くの情報を格納しています。

    • ローカルのブランチ情報(自分が作業している or チェックアウト等で作成済みのブランチ情報)

 

    リモートリポジトリのコピー情報(画像のリモート追跡ブランチ)

我有两个信息。

当他者修正并 git push 后的信息将被保存到远程存储库中,同时也会被复制到本地的远程跟踪分支。

合并git

git合并是一条命令,用于将一个分支的信息合并到另一个分支。

如果您当前处于“branchA”分支并执行git merge main命令,则会发生以下情况。

从本地存储库的本地分支合并

git_merge01.png

此外,如果在相同的情况下执行”git merge origin/main”。

远程追踪分支的主分支(origin/main)将被合并。

git_merge02.png

拉取 git

对于 git pull,可以将其理解为将 git fetch 和 git merge 结合起来的操作。

从远程仓库复制到本地的远程追踪分支后,将差异合并到本地分支中。

git_pull.png

常见的误解

正在现场工作。

git merge origin/branchA でリモートリポジトリにある branchA の情報をマージできる

我觉得有相当多的人这样认为。

由于只从本地存储库的远程跟踪分支合并,所以无法合并其他人的修订版本位于远程存储库中。

在这种情况下,我们应该在进行git pull或者git fetch之后执行git merge。

最后

我基本上使用的是git fetch + git merge的组合。

因为通过fetch命令可以对差异进行目视确认后再进行合并,所以这样做是有道理的。
如果在差异中有令人担忧的地方,可以在合并之前进行升级。

当代码需要进行少量修正时,有时也可以使用git pull操作。

如果这篇文章能对任何人有所帮助,那我就感到非常幸福。
非常感谢您阅读到这里。