Git本质是一个文件管理系统。针对不同的文件状态,打入标记,构成对象。存储对象的信息和配置信息都存放在.git隐藏文件夹里,实际上各功能都是文件而已。
新建分支branch,是把同一个文件重复使用了,虽然可能是在不同目录,但是同样的文件数据是只有一份。所以可以多拉分支而不影响性能。融合分支时,实际上也只用把不一样的文件合并了。
checkout切换分支。origin起源、远程仓库。
编码时首先拉一个新分支出来修改,修改完融合进去。
commit之后文件才会存储到.git文件里,进入版本库。而对应的文件也会构成一个commit对象存储在object里。
Git如果是不在本地的远程仓库会有不同的连接协议,SSH、GIT、HTTP(S)等。
对仓库直接push和pull往往会加一道锁,例如要放本地SSH的公钥在仓库中才可以交互。而上传的代码必须是快进式的版本,即本地提交的版本高于远程现有的版本。
git pull = git fetch + git merge