打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
git使用教程12-创建分支,切换分支,删除分支

前言

如果本地有个分支不想要了,如何删除?远程仓库的分支不想要了,如何删除?
git仓库经常会用到分支管理代码,本篇讲下git创建分支和删除分支相关的操作。

git 创建分支

git branch 可以查看当前的所有分支

>git branch
* master

创建分支git branch 分支名称

>git branch yoyo

创建之后再次查看,就会多了个分支

>git branch
* master
yoyo

创建分支后,此时master分支前面有个星号,此时还在master分支上

checkout 切换分支

上面创建了分支,默认还是在master上,如果我们想切换到新的分支上,用git checkout 分支名称

>git checkout yoyo
A .idea/vcs.xml
Switched to branch 'yoyo'

此时切换成功,可以通过git branch 查看

>git branch
master
* yoyo

查看当前分支状态也可以用git status

>git status
On branch yoyo

创建分支的同时并切换分支

>git checkout -b yoyo2
A .idea/vcs.xml
Switched to a new branch 'yoyo2'

相当于先创建分支,再切换分支

git branch yoyo2
git checkout yoyo2

删除本地分支

如果上面的某个分支不想要了,想删掉本地的分支,在删除分支的时候, 我们会使用git branch —delete 分支名称 来执行.
—delete缩写就是-d,可以使用 git branch -d 分支名称来代替

  • -d 是—delete的缩写,在使用—delete删除分支时,该分支必须完全和它的上游分支merge完成,如果没有上游分支,必须要和HEAD完全merge

  • -D 是—delete —force的缩写,这样写可以在不检查merge状态的情况下删除分支

  • —force 简写-f,作用是将当前branch重置到初始点(startpoint),如果不使用—force的话,git分支无法修改一个已经存在的分支.

在不检查merge状态的情况下删除分支,可以使用git branch -D 分支名称 ,它是git branch --delete --force 分支名称的缩写

如果当前状态是在yoyo2分支上,直接删除yoyo2分支是不可以的

>git branch
master
yoyo
* yoyo2

>git branch -D yoyo2
error: Cannot delete branch 'yoyo2' checked out at 'D:/soft/git/web_git'

必须先切换到其它分支上才能删除

>git checkout master
A .idea/vcs.xml
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

>git branch -D yoyo2
Deleted branch yoyo2 (was c613c75).

>git branch
* master
yoyo

删除远程分支

如果我们想通过本地的命令行删除远程分支,需先建立本地分支和远程分支的关系。
场景1:本地新建一个分支,推送到远程分支,后面不想要这个本地分支和远程分支了

先按前面的步骤创建本地分支并checkout到你要推送的分支上

>git branch
* master
yoyo

>git checkout yoyo
A .idea/vcs.xml
Switched to branch 'yoyo'

>git status
On branch yoyo

接着推送到远程分支上:git push origin 本地分支名称:远程分支名称,这样本地分支和远程分支就建立了关系

>git push origin yoyo:yoyo

接下来先删除本地分支,再删除远程分支

>git checkout master
A .idea/vcs.xml
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

>git branch -D yoyo
Deleted branch yoyo (was c613c75).

>git push origin --delete yoyo

- [deleted] yoyo

这样我们的本地分支和远程分支都删掉掉了

场景2:本地没这个分支,远程上有这个分支,想删掉远程的分支

如果我本地有这个项目,我远程上有个 yoyoketang 的分支(本地没分支),可以先拉到我们的本地,建立关系

>git checkout -b yoyoketang origin/yoyoketang
fatal: Cannot update paths and switch to branch 'yoyoketang' at the same time.
Did you intend to checkout 'origin/yoyoketang' which can not be resolved as commit?

上面有个报错,可以执行git fetch更新下

>git fetch
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 13 (delta 7), reused 10 (delta 4), pack-reused 0
Unpacking objects: 100% (13/13), done.

c613c75..f380d71 master -> origin/master
* [new branch] yoyoketang -> origin/yoyoketang

再执行git checkout -b 本地分支 origin/远程分支 就可以了

>git checkout -b yoyoketang origin/yoyoketang
A .idea/vcs.xml
Branch yoyoketang set up to track remote branch yoyoketang from origin.
Switched to a new branch 'yoyoketang'
>git branch
master
* yoyoketang

同步到本地分支后,跟上面操作一样,先删除本地分支,再删除远程分支

>git checkout master
A .idea/vcs.xml
Switched to branch 'master'
Your branch is behind 'origin/master' by 3 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)

>git branch -D yoyoketang
Deleted branch yoyoketang (was eaa102f).

>git push origin --delete yoyoketang

- [deleted] yoyoketang

2021年第六期《python接口自动化+测试开发》课程,1月9号开学(火热报名中!)

1月9-4月1820:30-22:30

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Git创建与管理远程分支
最简单的 Git 使用流程
git checkout 远程分支
github 分支管理
Git clone远程分支
git远程分支的管理和代码提交
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服