Git Fetch 和 Git Pull 的区别
引言
可以使用 Git Fetch 和 Git Pull 分别获取和拉取远程仓库。例如,GitHub 和 BitBucket 等多个第三方网站托管 Git 仓库。
开发人员使用远程仓库来进行协作。当远程位置发生更改时,这些更改会自动克隆到本地。每当进行本地提交时,远程提交也会更新。
Git Fetch 和 Git Pull 都可以获取已推送的远程仓库。但重要的是要注意,尽管如此,它们的工作方式不同。这些命令有很多不同的用途,因此了解它们非常重要。
在比较 git fetch 和 git pull 之前,了解 git 非常重要。
什么是 Git?
使用 Git,小型到大型项目都可以跟踪其随时间的变化。开发人员可以使用 Git 来协调他们的工作。我们的团队成员可以借助版本控制同时跟踪和协作。
Git 是许多 Git 服务(如 GitHub 和 GitLab)的基础,但也可以独立于这些服务使用 Git。Git 可以私下使用,也可以公开使用。
Git 平台快速易学,与竞争对手相比具有更多优势。
什么是 Git Fetch?
这是一个命令,允许您检索更新的文件和远程引用并将它们存储在本地。Fetch 是检查其他人一直在做什么以及他们想出了什么的过程。我认为它与 SVN update 的主要区别在于您不必更新中央历史记录;相反,它显示了中央历史记录随时间的进展。无论您获取什么内容,您在本地正在进行的工作都不会受到您正在获取的内容的影响;它与您已经在本地获得的内容隔离。您必须使用 git checkout 手动检出内容。因此,fetch 过程是确保您可以安全地检查提交后再将其合并到本地存储库中的一种好方法。
什么是 Git Pull?
使用此命令,您可以检索已远程更新的文件和引用,并将它们存储在您计算机的本地。一旦远程跟踪分支添加到本地分支,本地分支就会更新。随时可以远程分支,而跟踪分支可以远程推送和拉取。一般来说,您可以将其视为获取和合并的混合体。当从远程存储库获取更改并希望尽快将其应用到本地时,它首先将其与本地存储库中的更改合并,然后再将更改应用到远程存储库,以便能够在从远程存储库获取更改后立即应用它们。
Git Fetch 和 Git Pull 的区别
Git Fetch 和 Git Pull 之间存在差异。下表总结了它们的主要区别。
Git Pull |
Git Fetch |
---|---|
在 pull 方法中,新的提交将从远程拉取/下载并与那里的内容合并。 |
对于远程存储库,可以使用此方法复制或下载内容。 |
远程跟踪的分支在本地同步。 |
远程跟踪的分支会被更新,但本地分支不会。 |
当本地和远程更新混合时,会发生合并冲突。 |
合并期间不会出现冲突。 |
使用 Git Pull 将远程进行的修订推送到本地。 |
使用 Git fetch 可以查看远程存储库的更改,而无需进行任何本地更改。 |
拉取后,我们的分支将包含本地提交以及来自远程存储库的新提交。 |
只要我们的本地工作分支保持不变,我们就可以看到更改,而无需更新远程跟踪分支。 |
命令:git pull |
命令:git fetch |
结论
在远程交互方面,您需要做的两件最重要的事情是 git fetch 和 git pull。
为了跟踪远程所做的更改,可以使用 Git fetch 检查和查看所做的更改,而无需修改原始文件。
当我们想将最新的远程更改合并到我们的本地仓库时,可以使用 git pull。
尽管 git fetch 和 git pull 各有其优点和用例,但许多人发现 git fetch 命令是 git pull 的更安全替代方案。