何时需要init
git init//初始化本地仓库
.git目录
如果初始化就会在当前文件夹中出现.git的目录,该目录默认是隐藏的,需要关闭显示隐藏文件才能看到。执行完git init命令后,当前目录就成为了工作区(工作区可以理解为操作本地仓库的车间)。一般情况是一个项目一个.git目录,如果像下面把不同项目都放在一起,那就应该到对应的文件夹下再使用git init 命令。
如果本地仓库要拉取远程,直接使用clone,不需要初始化。拉取完的文件夹中会带着.git目录。
下表做了一个简要对比
本地仓库 | 远程仓库 | 代码 |
空 | 有 | clone |
有 | 无 | init |
关于分支的理解
master
Git 的分支,本质是指向提交对象的可变指针。 Git 的默认分支名字是 master,并不是一个特殊分支,跟其它分支没有区别。 几乎每个仓库都有 master 分支,是因为前面提到的git init 命令默认建立。
在本地看到的这个master或者使用git checkout 分支 命令切换到的分支是远程的分支吗,今天之前我一直以为是远程分支,但是总觉得有点问题,今天通过几个命令进行了验证
git branch
git branch -a
git checkout dev
git branch查看查看保存在了本地仓库的分支信息,而并不是远程仓库
上图可以看到本地现在只有一个main分支
当使用git checkout dev 分支之后,出现了下图的提示信息,翻译过来的意思是
“切换到新分支“dev”
分支“dev”设置为从“origin”跟踪远程分支“dev”。”
可以理解为,本地分支和远程分支进行了对接。
再查看本地分支就出现了两个分支名,绿色代表在本分支下面
假设切换一个远程没有的分支会怎样呢,找不到匹配分支
附常用命令:
连接GitHub远程仓库,命令:git remote add origin http地址
拉取仓库中的代码,命令:git pull --rebase origin master
添加文件,命令:git add .
添加提交信息,命令:git commit -m "提交信息"
提交代码,命令:git push -u origin master
更新分支:git fetch origin --prune
切换分支:git checkout dev