Git分支篇git branch和git checkout

分支作用

在开发过程中,项目往往由多人协同开发,那么将多人编写的代码汇总到一起就成了一个困难且复杂的工作,另外项目也需要备份和版本迭代,因此不能只有一个版本。因此分支就成为了优秀的解决方案。

分支相互独立,不同部门在不同分支开发,分支由主分支构建,分支代码独立运行且无误后融合到主分支,保证主分支都是稳定可部署的代码。分支的存在极大的提高了开发效率。

分支一般分为主分支和其他分支,不同程序员在分支上编写代码,无误后融合到主分支(一般为master分支)是各个程序员的代码都融合到主分支上。

分支也可以进行版本迭代,开发的第一版融合到master1主分支上,作为第一版,二次开发时融合到master2上作为第二个版本,代码也不会丢失。

Git分支管理

初始化仓库
分支依赖于仓库,因此分支需要在git仓库构建。git命令支持使用git init初始化一个空的git仓库。

git init

在这里插入图片描述

git branch

git branch命令是分支管理命令, 有如下功能:

  • 查看分支
  • 创建分支
  • 删除分支
  • 重命名分支
  • 设置上游分支
  • 将分支推送到远程仓库
# 查看本地分支
git branch

默认只列出本地分支,不显示远程分支,并且在当前分支前面使用 * 标记

在这里插入图片描述

刚初始化的仓库是没有分支的,如果复制项目到当前目录,并绑定远程仓库,最后执行git push origin master命令就会自动在本地和远程仓库生成master分支。(推荐)

当然也可以直接在本地创建分支,git提供了git branch [branchName]来兴建一个分支。

在这里插入图片描述
出现上面错误的原因是"库是空的,无法创建主分支",需要添加内容并提交到工作区,也就是执行如下命令:

git add .

git commit -m "xxx"

执行命令后git仓库就有内容了,并且git系统自动以此内容创建一个master主分支

在这里插入图片描述

# 查看远程分支
git branch -r

git branch --remotes

在这里插入图片描述

# 查看所有分支包含远程和本地
git branch -a

git branch --all

在这里插入图片描述

# 查看分支提交的详细信息
git branch -v

git branch --verbose

在这里插入图片描述

在查看远程仓库的分支时注意绑定远程分支仓库。

# 创建本地分支
git branch help

在这里插入图片描述

#git checkout -b 创建并切换到新的分支
git checkout -b <branch>
# 切换到指定分支
git checkout <branch>

在这里插入图片描述

git checkout -b <branch>=git branch <branch>+git checkout <branch>

# 将本地分支推送到远程仓库(创建远程仓库分支)
git push origin <local_branch>:<remote_branch>

# 简写
git push -u origin <local_branch>
# 删除一个名字为branchName的分支,如果该分支有提交未进行合并,则会删除失败。
git branch -d <branchName>

# 强制删除一个名字为branchName 的分支
git branch -D <branchName>


# 删除远程分支
git push origin -d <branch>

git push origin :<branch>
# 重命名当前分支
git branch -m <branch>

# 重命名指定分支
git branch -m <old-branch> <new-branch>

git checkout

git checkout切换分支和创建分支的命令。git checkout命令可以切换通过git branch命令创建的分支。每个分支都是一个独立的项目空间。

checkout一个分支,会更新当前的工作空间中的文件,使其与检出分支的commit版本状况保持一致。这之后工作区中的所有变更都会被记录在checkout出来的那个分支上。这一操作可以认为是在挑选你希望修改的工作分支。

git checkout命令有时候会跟git clone命令相混淆。两个命令中最为显著的差别在于,git clone用于从远程仓库获取代码,而git checkout则用来在本地系统中业已存在的代码库中切换不同的版本。

# 切换本地分支
git checkout <branch>

# 切换远程分支
git checkout -t <origin/xxx>

在这里插入图片描述

在不同分支下改变目录下的文件,提交到工作区的内容时不一样的。也就是说当切换分支后,就是一个独立的空间,这个空间工作区的内容由git addgit commit决定,最后git push推送该分支的代码。

分支项目拉取

在git管理的项目中提供了两种方法拉取远程项目git clonegit pull两个命令。在分支中git clonegit pull是不一样的,前者是面向公开项目的,g后者就是用户本地和远程仓库传输的。

git clone是作用于主分支,将主分支克隆到本地,这个过程无需密码验证,任何开发者都可以将远程仓库的主分支地址拉取到本地(只作用于主分支)。

git pull可以在任意分支上从远程的任何分支拉取项目,此过程需要密码验证。在管理本地分支项目与远程分支项目时都是使用该命令。

远程分支也是可以直接拉取到本地的,通过git fetch命令。

# 在本地新建一个xiaoxu分支,并将远程origin仓库的master分支代码下载到本地xiaoxu分支
git fetch origin master:xiaoxu
# 取回origin主机的master分支
git fetch origin master
# 将某个远程主机的更新,全部取回本地
git fetch <远程主机名>
# 取回特定分支的更新
git fetch <远程主机名> <分支名>
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xvwen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值