【适合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](https://cdn.silicloud.com/blog-img/blog/img/657d2cc337434c4406c4f318/8-0.png)
可能な限り多くの情報を格納しています。
-
- ローカルのブランチ情報(自分が作業している or チェックアウト等で作成済みのブランチ情報)
- リモートリポジトリのコピー情報(画像のリモート追跡ブランチ)
我有两个信息。
当他者修正并 git push 后的信息将被保存到远程存储库中,同时也会被复制到本地的远程跟踪分支。
合并git
git合并是一条命令,用于将一个分支的信息合并到另一个分支。
如果您当前处于“branchA”分支并执行git merge main命令,则会发生以下情况。
从本地存储库的本地分支合并
![git_merge01.png](https://cdn.silicloud.com/blog-img/blog/img/657d2cc337434c4406c4f318/17-0.png)
此外,如果在相同的情况下执行”git merge origin/main”。
远程追踪分支的主分支(origin/main)将被合并。
![git_merge02.png](https://cdn.silicloud.com/blog-img/blog/img/657d2cc337434c4406c4f318/20-0.png)
拉取 git
对于 git pull,可以将其理解为将 git fetch 和 git merge 结合起来的操作。
从远程仓库复制到本地的远程追踪分支后,将差异合并到本地分支中。
![git_pull.png](https://cdn.silicloud.com/blog-img/blog/img/657d2cc337434c4406c4f318/24-0.png)
常见的误解
正在现场工作。
git merge origin/branchA でリモートリポジトリにある branchA の情報をマージできる
我觉得有相当多的人这样认为。
由于只从本地存储库的远程跟踪分支合并,所以无法合并其他人的修订版本位于远程存储库中。
在这种情况下,我们应该在进行git pull或者git fetch之后执行git merge。
最后
我基本上使用的是git fetch + git merge的组合。
因为通过fetch命令可以对差异进行目视确认后再进行合并,所以这样做是有道理的。
如果在差异中有令人担忧的地方,可以在合并之前进行升级。
当代码需要进行少量修正时,有时也可以使用git pull操作。
如果这篇文章能对任何人有所帮助,那我就感到非常幸福。
非常感谢您阅读到这里。