在使用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
是哪里来的呢?
通过截图可以发现,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
可以查看到本地两个分支与远程两个分支的关联
5、总结
- 了解分支的查看、修改、创建和删除
- 了解如何创建一个空的分支
- 了解如何进行批量删除分支