FETCH_HEAD:
是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。
commit-id:
在每次本地工作完成后,都会做一个git commit 操作来保存当前工作到本地的repo, 此时会产生一个commit-id,这是一个能唯一标识一个版本的序列号。在使用git push后,这个序列号还会同步到远程仓库。
git fetch
git fetch
命令用于从远程仓库拉取数据,但不会更新本地分支。这意味着它会将远程仓库中的最新更改下载到本地,但不会将它们合并到本地分支中。fetch 的一个潜在用途是获取远程仓库的最新更改,但保持本地分支的独立性。
这将更新 git remote
中所有的远程仓库所包含分支的最新commit-id, 将其记录到 .git/FETCH_HEAD
文件中
git pull
git pull
命令用于从远程仓库拉取数据,并将其合并到本地分支。这意味着它会将远程仓库中的最新更改下载到本地,然后将它们合并到当前分支中。
git pull
的一个潜在用途是将远程仓库的最新更改合并到本地分支中,以更新当前工作状态。
首先,基于本地的FETCH_HEAD
记录,比对本地的FETCH_HEAD
记录与远程仓库的版本号,然后git fetch
获得当前指向的远程分支的后续版本的数据,然后再利用git merge
将其与本地的当前分支合并。