本地:git的本地仓库会保留当前项目的一套的全部代码,其余的各个主分支和分支和版本的改动都会记录在git.文件夹里,当你切换本地分支的时候,它其实给你展示的就是:
一套当前项目的代码版本记录(commit后没有任何改动的那套代码版本记录)+各个分支的差异记录.
1.一套当前项目的代码版本记录(commit后没有任何改动的那套代码版本记录)在本地版本库存着.
2.各个分支和版本基于(commit后没有任何改动的那套代码版本记录)的差异在本地版本库存着.
3.一套当前项目的最新的代码(commit后有改动的那套代码)在本地工作区存着.
在远程仓库建一个分支a,在本地pull一下代码,就会看到这个新建的远程分支origin/a,然后你点击签到这个origin/a分支上,其实它不会真的给你签到远程的origin/a分支上,因为这是在本地,本地是签不到远程分支上去的,所以它会做两个步骤:
1.在你本地创建一个和分支origin/a内容一模一样的a分支
2.自动把你签到这个本地的分支a上
pull和push都是拉推改动内容
当你在本地点pull,其实是拉取远程分支的改动内容,当你在本地点push时,其实是把你本地a分支的改动内容推到远程分支上.