Git 允许对存储库执行各种操作,包括本地存储库和远程存储库。用户在下载要处理的项目时,会创建一个本地存储库来存储原始项目的副本。此本地存储库存储用户所做的更改。这样,用户可以在将更改添加到主项目之前对其进行编辑。通过使用本地存储库,多个用户可以同时在同一个项目上执行工作。
每次用户推送对本地存储库所做的修改时,中央存储库都会更新。这些更改不会在从事同一项目的任何其他开发人员的本地存储库中更新。这可能会造成混淆,因为不同的合作者最终可能会在项目中贡献相同的功能。为了避免这种情况,协作者每次在他们的存储库上开始工作之前都会更新他们机器上的本地副本。本地副本的更新是通过在中央存储库上下载项目的最新副本来完成的。更新本地存储库的过程称为Pulling或Fetching 。 Git 提供了git pull
命令和git fetch
命令来将中央仓库克隆到本地仓库。
Pull 命令:在开始项目工作之前,协作者需要使用中央存储库克隆他的本地存储库,以获得项目的最新副本。这是通过使用git pull
命令完成的。此命令在执行后立即更新本地存储库。
句法:
git pull
git pull
命令是另外两个命令的组合,即git fetch
和git merge
。
拉取命令的属性:
从中央存储库中拉取更改可以与某些属性一起使用,这些属性可用于在存储库上执行多个拉取操作。这些属性可用于从存储库执行特定的拉取。这些是:
- –no-commit:默认情况下,
git pull
命令在调用时将执行两个分支的合并,然后自动执行提交操作以创建新的提交。但是,当使用--no-commit
属性调用 pull 操作时,只会执行合并过程,不会发生提交操作。
句法:$ git pull
--no-commit - –rebase:当
git pull
命令时,它将合并两个分支并创建一个单独的分支,该分支继承正在合并的两个分支的更改。这将在协作者之间造成一些混乱,因为将创建一个额外的分支。为了避免这种混淆,使用了这个命令。它还将创建一个单独的分支,该分支继承两个分支的更改,但是要合并的分支将从存储库中删除。
句法:$ git pull
--rebase - –verbose:使用 –verbose属性调用此
git pull
方法时,将显示使用 pull 方法下载的所有文件和内容。git pull
完成的合并过程的所有细节。
句法:$ git pull
--verbose Fetch 命令:
git pull
命令的工作方式类似,但两者的唯一区别是git fetch
命令在克隆存储库后不会执行合并操作。此命令将更新remote-tracking branches
即存储在远程存储库中的本地分支。它不会更新分支的本地副本。这有助于在将这些更改与本地存储库合并之前查看正在下载的更改。
git pull
命令执行获取和合并这两个操作。因此,协作者将无法查看正在下载的更改。git pull = git fetch + git merge
fetch 命令的属性:
从中央存储库获取更改可以与使用某些属性一起完成,这些属性可用于在存储库上执行多个获取操作。这些属性可用于从存储库执行特定的提取操作。这些是:- –all:当 fetch 命令与–all属性一起使用时,它将在一次调用中获取所有注册的遥控器及其分支。
句法:$ git fetch --all
- –dry-run:此选项实际上不会对存储库执行任何操作,但会为存储库上的命令测试运行提供演示。它将输出将在执行命令时发生的更改或操作,但不会应用它们。
句法:$ git fetch --dry-run
因此,
git fetch
和git pull
这两个命令都可用于通过从中央存储库下载最新更改来使用中央存储库更新本地存储库。 - –all:当 fetch 命令与–all属性一起使用时,它将在一次调用中获取所有注册的遥控器及其分支。