git branch分支怎么玩来看看吧

1,319 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情

在使用git的过程中,分支的使用应该是非常多的。github.com 之前的默认分支为 master ,但后来由于不得已的原因将默认分支改为了 main

前言 分支的管理,在git工具中应该是很长用的,本篇我将对我之前在工作中使用的分支相关命令进行总结。

1、查看分支

// 查看本地分支
git branch

// 查看远程分支
git branch -r

// 查看本地分支和远程分支,如果不存在需要git fetch一下
git branch -a

2、 修改分支名称

// 修改当前本地分支的名称
git branch -m branch-name

// 也可以修改指定的分支  原分支名称  新分支名称
git branch -m master main

3、创建分支

有时候我们在开发的过程中,难免有很多不一样的情况,有时候可能就需要根据本地的分支进行创建临时的分支,然后又有时候需要根据同事创建的远程分支,再来创建本地分支。

3.1、根据本地分支创建分支

  • 根据当前分支直接创建dev分支
git branch dev
  • 另外一种方式

或者分支较多的情况下,先切换分支,切换到你想要依据那个分支去创建分支,然后根据这个分支进行创建分支

git checkout main
git branch dev  // 依据main分支创建dev分支
  • 依据当前分支,创建dev分支并切换到dev分支
git checkout -b dev

3.2、根据远程分支创建分支

test为远程仓库的分支,而tester为我们本地要创建的分支名称

git fetch origin test:tester
git checkout tester

如果本地暂时不存在这个test分支,可能是同事等签入到了远程服务器,此时就可以通过上面的命令进行创建。

注意:这里我故意将远程分支 test 和本地分支 tester命名不同,就是想说明,远程分支和本地分支并不一定要求分支名称一样,只需要做好对应关系就可以了。

3.3、创建空的分支

有时候我们因为某些情况,可能并不想创建新的仓库,便直接在本仓库创建一个空的分支即可。

git checkout --orphan gp

这个命令根据当前分支创建了一个分支,并且这个分支不与其他任何分支有关联。但是其中的项目文件是还在的,我们需要通过删除指令来将文件删除

git rm -rf .  

通过递归将文件夹以及文件进行删除,注意最后又一个 "." 。

通过两部操作,从而达到创建空的分支的目的。

3.4、根据某个提交来创建分支

根据commitid来创建分支,并切换到新分支
git checout -b new-branch-name commitid

//第二种方式,同样会切换到新分支
git checkout commitid
git switch -c new-branch-name

那么这个 commitid是哪里来的呢?

image.png

通过截图可以发现,commit 后那一长串字符串就是commitid了。

4、删除分支

// 比如你要删除dev分支,要先切换到其他分支
git checkout main

// 删除本地分支
git branch -d dev

// 如果删除不了,可以进行强制删除
git branch -D dev

// 有必要的情况下,删除远程分支但是要谨慎使用
git push origin --delete dev

有时候根据功能需求,创建了无数个feat/xxx分支,想要一个一个删除不是不行,但是有时候真的太多了,那有没有批量删除呢

git checkout main
git branch | grep -v "master" | grep -v "dev" | grep -v "main"  | xargs git branch -D

请先切换到不会被删除的分支上执行,除了-v后的master分支、dev分支、main分支不会被删除,其他的都会被删除。

4、查看本地分支与远程分支的关联

git branch -vv

image.png

可以查看到本地两个分支与远程两个分支的关联

5、总结

  • 了解分支的查看、修改、创建和删除

  • 了解如何创建一个空的分支

  • 了解如何进行批量删除分支