1.master、origin、origin/master 区别
首先搞懂git分支的一些名称区别:
master : Git 的默认分支名字。它并不是一个特殊分支、跟其它分支完全没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。
origin :Git 克隆的仓库服务器的默认名字。
origin/master:是当本地的 master 分支同步到服务时的名字。如果分支名称为 ForDebug、当分支同步到服务器时、会看到服务器上的名字为 origin/ForDebug。
注:master是一个默认分支名称,origin是一个默认仓库服务器名,服务器名和分支名是两个概念。
2.查看分支的指令
#查看本地仓库分支
git branch
#查看远程仓库分支
git branch -r
#查看全部(远程和本地)仓库分支
git branch -a
3.创建本地分支
// 写法一:创建新分支
git checkout -b yourbranch // yourbranch 新分支名
// 写法二:基于某分支创建自己的新分支
git checkout -b yourbranch origin/basebranch // basebranch老分支名
// 写法三:
git branch yourbranch //创建某个分支
git checkout yourbranch //表示切换到某个分支
4.删除分支
4.1 删除本地分支
# 如果分支包含未合并的更改和未推送的提交,则 -d 标志将不允许删除本地分支
# -d 是 --delete 的别名
git branch -d [branch_name]
# 强制删除本地分支,不考虑其合并状态
# -D 是 --delete --force 的别名
git branch -D [branch_name]
4.2 删除远程分支
git push <远程仓库名称> -d [分支名称]
注:此处的分支名称不要带远程仓库名称,示例:
git push origin -d LIO-SAM_jq
5.提交本地代码到远程仓库分支
git push <远程仓库名称> <本地仓库分支>:<远程仓库分支>
注意:遵循“从哪到哪的原则”,同样此处远程仓库分支不要带仓库名称,示例:
git push origin master:LIO-SAM_jq
6.本地分支的使用方法
在一个项目中,默认的分支为master,下面展示如何在一个新的分支上修改代码,而不改变主分支的代码。
6.1 创建新的分支A
git checkout -b A
6.2 在新的分支A上新创将一个A.cpp文件
vim A.cpp
6.3 提交改动到缓存区
git add .
6.4 提交改动到本地仓库分支
git commit -m "备注"
经过上面4个步骤,我们在新的分支上修改了代码,并提交到了本地仓库分支,当我们切换回master分支后,会发现本地的A.cpp文件不存在。
注意:缓存区是本地所有的分支共享的,因此只进行到了6.3步骤的话,切换回master主分支后,会发现A.cpp文件依旧存在。