Skip to content

Latest commit

 

History

History
61 lines (47 loc) · 3.94 KB

13_Git_fetch_and_pull_difference.md

File metadata and controls

61 lines (47 loc) · 3.94 KB

Git Fetch 和 Git Pull 的区别

1. 介绍

Git Fetch 是一个命令,它告诉本地存储库远程存储库中有可用的更改,而不会将更改带入本地存储库。另一方面,Git Pull 将远 程目录更改的副本带入本地存储库。让我们借助示例分别查看 Git Fetch 和 Git Pull。

git pull = git fetch + git merge

2. Git Fetch

让我们创建一个名为demo.txt的文件,其中包含“ Hello Geeks”内容,将目录初始化为 git 存储库,并将更改推送到远程存储库。

git init
git add <Filename>
git commit -m <Commit Message>
git remote add origin <Link to your remote repository>
git push origin <branch name>

现在,我们在远程存储库中 有了我的demo.txt 本地和远程存储库现在是同步的,并且在两个地方具有相同的内容。现在让我们更新远程存储库中的 demo.txt 。 现在,由于我们已经远程更新了demo.txt,让我们将更改带到我们的本地存储库。我们的本地存储库只有 1 次提交,而远程存储库现在 有 2 次提交(观察从4c4fcb8开始的第二次提交)。让我们使用git fetch命令在本地存储库中查看远程存储库中是否有更改。在此 之前,让我们使用git log命令查看我们之前的提交。 我们可以看到,在使用git fetch之后,我们得到了在远程存储库中完成了一些提交的信息。(注意4c4fcb8是我们在远程存储库中第二次提交的首字母)。要将这些更改合并到我们的本地存储库中,我们需要使用git merge origin/<branch name>命令。 让我们使用git log 命令查看我们在本地存储库中的提交。 我们在本地存储库中提交了远程存储库。这就是 git fetch 的工作原理。现在让我们看一下git pull命令。

3. Git Pull

让我们对远程存储库中的 demo.txt 文件进行更多更改。 现在,我们在远程存储库中有 3 个提交,而在我们的本地存储库中有 2 个提交。(注意以09d828f开头的第三次提交)。现在让我们使 用git pull origin <branch name>命令将此更改带到我们的本地存储库。

我们可以看到,在git pull命令的帮助下,我们直接获取远程存储库并将其与本地存储库合并。

4. 结论

git pull = git fetch + git merge

现在我们的远程和本地存储库再次相互同步。因此,从以上例子中,我们可以得出结论:

Git fetch Git pull
在不合并到当前分支的情况下提供来自远程存储库的新更改的信息 从远程存储库中获取所有更改的副本并将它们合并到当前分支中
存储库数据在 .git 目录中更新 直接更新本地仓库
可以审查提交和更改 立即将更改更新到本地存储库。
没有合并冲突的可能性。 如果远程和本地存储库在同一位置进行了更改,则可能会发生合并冲突。
Git fetch 的命令是 git fetch Git Pull 的命令是 git pull
Git fetch 基本上将提交导入到本地分支,以便及时了解每个人正在处理的内容。 Git Pull 基本上使本地分支与远程副本一起 更新,远程副本也将更新其他远程跟踪分支。

参考: