Git 分支的操作 - git checkout -b


1. git checkout -b - 创建并切换分支

如果想以当前的 master 分支为基础创建新的分支,我们需要用到 git checkout -b 命令。切换到 feature-A 分支并进行提交,执行下面的命令,创建名为 feature-A 的分支。

git checkout -b <new-branch-name>

git checkout -b feature-A
strong@foreverstrong:~/github_work/git-tutorial$ git checkout -b feature-A
Switched to a new branch 'feature-A'
strong@foreverstrong:~/github_work/git-tutorial$ 

实际上,连续执行下面两条命令也能收到同样效果。

git branch feature-A
git checkout feature-A

创建 feature-A 分支,并将当前分支切换为 feature-A 分支。这时再来查看分支列表,会显示我们处于 feature-A 分支下。

git branch
strong@foreverstrong:~/github_work/git-tutorial$ git branch
* feature-A
  master
strong@foreverstrong:~/github_work/git-tutorial$ 

feature-A 分支左侧标有 *,表示当前分支为 feature-A。在这个状态下像正常开发那样修改代码、执行 git add 命令并进行提交的话,代码就会提交至 feature-A 分支。像这样不断对一个分支 (例如 feature-A) 进行提交的操作,我们称为培育分支。

下面来实际操作一下。在 README.md 文件中添加一行。

# Git Tutorial

这里我们添加了 feature-A 这样一行字母,然后进行提交。

git add README.md
git commit -m "Add feature-A"
strong@foreverstrong:~/github_work/git-tutorial$ git add README.md 
strong@foreverstrong:~/github_work/git-tutorial$ 
strong@foreverstrong:~/github_work/git-tutorial$ git commit -m "Add feature-A"
[feature-A 6df1569] Add feature-A
 1 file changed, 1 insertion(+), 1 deletion(-)
strong@foreverstrong:~/github_work/git-tutorial$ 

于是,这一行就添加到 feature-A 分支中了。

2. 切换到 master 分支

现在我们再来看一看 master 分支有没有受到影响,首先切换至 master 分支。

git checkout <branch-name>

git checkout master
git checkout main
strong@foreverstrong:~/github_work/git-tutorial$ git checkout master
Switched to branch 'master'
strong@foreverstrong:~/github_work/git-tutorial$ 
strong@foreverstrong:~/github_work/git-tutorial$ git branch
  feature-A
* master
strong@foreverstrong:~/github_work/git-tutorial$ 
strong@foreverstrong:~/github_work/git-tutorial$ cat README.md 
# Git Tutorial
strong@foreverstrong:~/github_work/git-tutorial$ 

然后查看 README.md 文件,会发现 README.md 文件仍然保持原先的状态,并没有被添加文字。feature-A 分支的更改不会影响到 master 分支,这正是在开发中创建分支的优点。只要创建多个分支,就可以在不互相影响的情况下同时进行多个功能的开发。

3. 切换回上一个分支

我们再切换回 feature-A 分支。

git checkout -
strong@foreverstrong:~/github_work/git-tutorial$ git branch
  feature-A
* master
strong@foreverstrong:~/github_work/git-tutorial$ git checkout -
Switched to branch 'feature-A'
strong@foreverstrong:~/github_work/git-tutorial$ git branch
* feature-A
  master
strong@foreverstrong:~/github_work/git-tutorial$ 
strong@foreverstrong:~/github_work/git-tutorial$ git checkout master
Switched to branch 'master'
strong@foreverstrong:~/github_work/git-tutorial$ git branch
  feature-A
* master
strong@foreverstrong:~/github_work/git-tutorial$ git checkout feature-A 
Switched to branch 'feature-A'
strong@foreverstrong:~/github_work/git-tutorial$ git branch
* feature-A
  master
strong@foreverstrong:~/github_work/git-tutorial$ 

像上面这样用 - (连字符) 代替分支名,就可以切换至上一个分支。当然,将 - 替换成 feature-A 同样可以切换到 feature-A 分支。

4. 切换到标签 (tag)

使用 git tag 命令查看所有的 tags 列表,确认你要切换的 tag 存在。

git tag

使用 git checkout 命令加上 tag 的名称切换

git checkout tags/<tag-name>

References

[1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/
[2] (日) 大塚弘记 著, 支鹏浩, 刘斌 译. GitHub入门与实践[M]. 北京:人民邮电出版社, 2015. 1-255

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yongqiang Cheng

梦想不是浮躁,而是沉淀和积累。

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

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

打赏作者

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

抵扣说明:

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

余额充值