分支
分支(branch)是 Git 最重要的概念之一,几乎所有 Git 操作流程都离不开分支。
本质上,分支只是一个动态指针(或者称为标签),指向某个提交(commit)。所谓“动态”,指的是当你切换到当前分支,生成新的 commit 时,分支就会自动更新,指向这个新的 commit。
查看分支
git status命令查看当前是哪一个分支。
git branch命令可以列出所有的本地分支。
-r参数查看所有的远程分支。
-a参数查看所有分支(包含本地和远程)。
创建分支
git branch命令紧跟一个分支名,就可以创建该分支。注意,该命令不会切换分支,创建后依然停留在当前分支。
上面命令创建了一个MyBranch分支,创建后并不会切换到MyBranch分支。
git checkout命令也可以创建分支,并且创建后会切换到该分支。
上面命令创建MyBranch分支,然后切换到该分支。
git push命令可以创建远程分支,并且与本地同名分支建立对应关系。
上面命令在远程origin仓库创建了MyBranch分支,并且与本地的MyBranch分支建立对应关系。
创建远程的同名当前分支,可以使用下面的命令。
上面命令中,HEAD是 Git 自带的动态指针,总是指向当前的本地分支。
切换分支
git checkout命令用来切换分支。
上面命令会切换到一个现有分支MyBranch,当前工作区会变成MyBranch的内容。
git checkout命令也可以切换到远程分支。
上面命令切换到远程的MyBranch分支。执行该命令之前,最好先执行git pull命令,将远程的内容都拉取到本地。
分支改名
git branch命令的-m参数可以为当前分支改名。
上面命令将当前分支改名为MyBranch。
删除分支
git branch的-d参数可以删除分支。
上面命令删除MyBranch分支,前提是该分支没有未合并的变动。
-D参数会强制删除分支,不管有没有未合并变动。
git push命令可以删除远程分支。
上面命令删除了远程的MyBranch分支。