Git 实战-分支

作者:vkvi 来源:ITPOW(原创) 日期:2019-11-30

分支是 git 的核心。

创建分支

git branch hotfix

如上创建了一个 hotfix 的分支,注意目前服务器上还不知道这个 hotfix。

切换分支

git checkout hotfix

注意这里是 checkout,前面见过 checkout 了吧,感觉 checkout 参数一变,功能大变啊,不管,就连官方也有这种感触。checkout 改变的就是 HEAD。

切换分支后,我们可以在 git 命令行中看到原来路径后面跟的 (master) 已经变成了 (hotfix)。

切换分支后,我们工作区的文件也会发生变化,工作区文件也会切换到对应分支之前存储的内容。

想一步到位,创建分支同时切换分支?

git checkout -b hotfix

加个参数,checkout 又具备创建分支功能了。

如果切换分支的时候,工作区文件有变更怎么办?

如果切换分支的时候,有文件修改了,即使它已经 add 到暂存区,都不会切换成功,git 建议我们切换之前要么 commit 之,要么 stash 之。

查看分支

git branch # 查看本地分支,其中当前分支前面有 *
git branch -r # 查看远程分支
git branch -a # 查看本地和远程分支,其中远程分支以 remotes 开头
git branch -v # 查看每个分支的最后一次提交
git branch --merged # 查看已经合并的分支
git branch --no-merged # 查看所有包含未合并工作的分支

合并、删除分支

git checkout master # 切换到 master 分支
git merge hotfix # 将 hotfix 分支合并到 master(当前分支)
git branch -d testing # 删除分支;如果是未合并分支,则会失败;如果要强行删除未合并分支,使用 -D 参数

推送分支

git push origin hotfix:hotfix

origin 是默认的远程仓库名称,冒号前后分别表示本地、远程分支名称。

本地分支可以用 HEAD 表示(HEAD 表示当前分支),远程分支不行,远程分支这样写的话,会创建一个叫 HEAD 的分支。

绑定分支,简化推送

前面推送的时候,需要指定远程仓库名称,本地、远程分支名称,比较麻烦,建议绑定。

git push --set-upstream origin hotfix

这样本地分支和远程分支就绑定起来了,以后我们使用 git push 就可以推送 hotfix 了,不需要写那么长一串了。

拉取分支

git pull origin hotfix:hotfix

此时冒号前面的是远程库中的分支,冒号右边的是本地库中的分支。

相关文章