Git(4) -- branch分支管理


每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

Git(4) – branch分支管理

列出所有分支

git branch

没有参数时,git branch 会列出你在本地的分支。

加上-a参数可以查看全部分支(包含本地分支和远程分支),远程分支会用红色表示出来(如果你开了颜色支持的话)

加上-r参数可以查看远程分支

其中带*号标注的是当前所在的分支

D:\che\im-api>git branch
  20210421_add_get_user_reward
  20210520_manage_chatroom_entry_wangql
  20210604_user_reward_chatroom_entry
* 20210622_feat_message_recall_wangql
  20210622_fix_extra_content_decode_wangql
  develop
  master

D:\che\im-api>git branch -a
  20210421_add_get_user_reward
  20210520_manage_chatroom_entry_wangql
  20210604_user_reward_chatroom_entry
* 20210622_feat_message_recall_wangql
  20210622_fix_extra_content_decode_wangql
  develop
  master
  remotes/origin/20210324_init_develop_env
  remotes/origin/20210421_add_get_user_reward
  remotes/origin/20210520_manage_chatroom_entry_wangql
  remotes/origin/20210604_user_reward_chatroom_entry
  remotes/origin/20210622_feat_message_recall_wangql
  remotes/origin/20210622_fix_extra_content_decode_wangql
  remotes/origin/HEAD -> origin/develop
  remotes/origin/develop
  remotes/origin/master
  
D:\renrenche\im-api>git branch -r
  origin/20210324_init_develop_env
  origin/20210421_add_get_user_reward
  origin/20210520_manage_chatroom_entry_wangql
  origin/20210604_user_reward_chatroom_entry
  origin/20210622_feat_message_recall_wangql
  origin/20210622_fix_extra_content_decode_wangql
  origin/HEAD -> origin/develop
  origin/develop
  origin/master

切换分支

git checkout (branchname)

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容。

根据指定版本号创建分支: git checkout -b branchName commitId

D:\renrenche\im-api>git checkout 20210324_init_develop_env
Switched to a new branch '20210324_init_develop_env'
Branch '20210324_init_develop_env' set up to track remote branch '20210324_init_develop_env' from 'origin'.

D:\renrenche\im-api>git branch
* 20210324_init_develop_env
  20210421_add_get_user_reward
  20210520_manage_chatroom_entry_wangql
  20210604_user_reward_chatroom_entry
  20210622_feat_message_recall_wangql
  20210622_fix_extra_content_decode_wangql
  develop
  master

删除分支

git branch -d (branchname)用来删除本地分支

git push origin --delete [branchname]用来删除远端分支,在删除远程分支时,同名的本地分支并不会被删除,所以还需要单独删除本地同名分支

清理本地无效分支(远程已删除本地没删除的分支): git fetch -p

D:\IdeaProjects\spring-boot-study>git branch
  master
* test
  test_new

D:\IdeaProjects\spring-boot-study>git branch -d test_new
Deleted branch test_new (was 4914823).

D:\IdeaProjects\spring-boot-study>git push origin -d test_new
remote: Powered by GITEE.COM [GNK-5.0]
To https://gitee.com/ShanXiXiaoMoTou/spring-boot-study.git
 - [deleted]         test_new

常见错误:

error: Cannot delete branch ‘XXX’ checked out at ‘XXXXXX’

在删除分支时,当前分支为在要删除的分支上,则会报以上错误。解决办法就是切换到其他任意分支,再去删除目标分支。

D:\IdeaProjects\spring-boot-study>git branch
  master
* test_new

D:\IdeaProjects\spring-boot-study>git branch -d test_new
error: Cannot delete branch 'test_new' checked out at 'D:/IdeaProjects/spring-boot-study'

文章作者: WangQingLei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 WangQingLei !
 上一篇
Git(5) -- commit提交管理 Git(5) -- commit提交管理
Git 提交信息修改: 未push到远程仓库的代码使用以下方法。对于已经将代码push到远程仓库的情况,需要在最后多执行一条强制push到远程仓库:git push --force origin 分支名的命令。
2021-06-29
下一篇 
Git(3) -- 查看提交历史 Git(3) -- 查看提交历史
Git 提交历史一般常用两个命令: git log - 查看历史提交记录。 git blame - 以列表形式查看指定文件的历史修改记录。
2021-06-16
  目录