如果我使用本地repo设置了远程服务器,并且第一次进行git提取,如果有10个远程分支,那么现在我将从我所读到的内容中获得10个远程跟踪分支。
从我还收集到的信息来看,这些远程跟踪分支是指向这些远程分支的指针,而不是那些正确的branches...is上代码的实际完整本地副本。
那么,我的后续工作是,如果在git获取之后检出其中一个远程分支,那么git是否仍然需要连接到远程以获取所有代码,还是只需切换到本地机器上的远程跟踪分支,该机器已经拥有所有代码?
发布于 2021-09-22 00:00:18
从我还收集到的这些远程跟踪分支中,
是指向这些远程分支的指针,而不是那些branches...is上的代码的实际完整本地副本,对吗?
不,这不对。
Git分支只是一个名称和一个提交ID。远程分支没有什么特别之处,除非您没有提交它们。
获取时,下载每个提交的完整副本。每个提交都知道哪个提交出现在它之前(或者在合并的情况下,提交了两个或多个提交)。这就是“历史”。Git在存储和传输历史方面非常有效。
我的后续工作是,如果在git获取之后,我要签出其中一个远程分支,git是否仍然需要连接到远程以获取所有代码,还是只需切换到本地机器上的远程跟踪分支,该机器已经拥有所有代码?
Git已经有了存储库的完整副本。当您切换到已经下载的git checkout origin/main
Git时,将原点/主点提交到。
只有少数几个Git命令可以进行任何网络访问。主要的是git push
、git fetch
和git pull
(这只是一个fetch +一个合并)。
https://stackoverflow.com/questions/69276341
复制相似问题