git——分支详解

分支查看

# 列出所有本地分支
$ git branch

# 列出所有远程分支
$ git branch -r

# 列出所有本地分支和远程分支
$ git branch -a

# 显示本地分支当前指向的提交记录的哈希值
$ git branch -v

# 显示本地分支当前指向的提交记录的哈希值
# 以及和其上游分支(远程跟踪的分支)的相对位置(及本地分支和远程分支是同步,超前,还是落后),如果有的话。
$ git branch -vv

参考:git branch -v、git branch -vv、git branch -verbose

分支创建和跟踪

# 新建一个本地分支,但依然停留在当前分支
$ git branch [branch-name]

# 新建一个本地分支,指向指定commit
$ git branch [branch-name] [commit]

# 新建一个本地分支,并切换到该分支,如有远程分支参数,将建立和远程分支的跟踪。
$ git switch -c [branch-name] [origin/remote-branch]

# 新建一个本地分支,与指定的远程分支建立追踪关系
$ git branch --track [branch-name] [origin/remote-branch]

# 新建一个本地分支,并切换到该分支,如有远程分支参数,将建立和远程分支的跟踪。
$ git checkout -b [branch-name] [origin/remote-branch]

# 新建一个远程分支,根据已有的本地分支  但是分支之间未有关联
$ git push origin [本地分支名称]:[远程分支名称]  // 使用一个,默认本地分支和远程分支相同;

# 根据已有的本地分支,跟踪远程分支
$ git branch -u [origin/remote-branch] [branch-name]  // 如果不带本地分支名称,则为当前分支。

# 根据已有的本地分支,跟踪远程分支
$ git branch  --set-upstream-to [origin/remote-branch] [branch-name]  // 如果不带本地分支名称,则为当前分支。

# 取消分支跟踪
$ git branch  --unset-upstream  [branch-name] // 如果不带本地分支名称,则为当前分支。

分支切换

$ git checkout [branch-name]

$ git switch [branch-name]

分支删除

# 大概步骤分为:1.删除本地分之;2.删除远程分支;3.删除跟踪分支;

# 删除本地分支
# 在使用--delete(-d)删除分支时,该分支必须完全和它的上游分支merge完成,如果没有上游分支,必须要和HEAD完全merge
$ git branch --delete(-d) [branch-name]

# 删除本地分支
# -D是--delete --force; 可以在不检查merge状态的情况下删除分支
$ git branch --delete --force(-D) [branch-name]

# 删除远程分支
# 该指令也会删除追踪分支
$ git push origin --delete [remote-branch]

# 删除跟踪分支
git branch --delete --remotes [origin/remote-branch]

参考:git分支基本介绍 git 删除分支

branch命令常用参数说明


$ git branch //查看本地所有分支 

$ git branch -r //查看远程所有分支

$ git branch -a //查看本地和远程的所有分支
// PS:  git branch -a(-r) 无法获取远程已经存在的分支; 
// 原因是:git branch -a(-r) 这条命令并没有每一次都从远程更新仓库信息,我们可以手动更新一下。如:git fetch origin 

$ git branch <branchname> //新建分支

$ git branch -d <branchname> //删除本地分支

$ git branch -d -r <branchname> //删除远程分支,删除后还需推送到服务器
$ git push origin:<branchname>  //删除后推送至服务器

$ git branch -m <oldbranch> <newbranch> //重命名本地分支

/**
*重命名远程分支:
*1、删除远程待修改分支
*2、push本地新分支到远程服务器
*/

//git中一些选项解释:

-d
--delete:删除

-D
--delete --force的快捷键

-f
--force:强制

-m
--move:移动或重命名

-M
--move --force的快捷键

-r
--remote:远程

-a
--all:所有

参考:git-branch

posted @ 2020-08-11 03:08  CD、小月  阅读(13)  评论(0编辑  收藏  举报  来源