Git常用分支相关命令

Git常用分支命令

  • 本地分支相关
一. 本地分支相关
1.新建分支
git branch BranchName

2.重命名分支
git branch -m OldBranchName NewBranchName

2.删除本地分支
git branch -d branchName

3.删除本地分支
git branch -d BranchName

4.强制删除本地分支
git branch -D branchName

4.修改分支名称/移动名称
git branch --move branchName NewBranchName

5.删除远程分支
git branch -dr origin/远程分支名
git push origin --delete 远程分支名

5.查看当前分支以及分支列表
git branch

6.列出远程跟踪分支和本地分支
git branch -a

7.查看分支详情
git branch -v

8.查看分支追踪目标
git branch -vv或者 通过.git/config文件查看分支追踪的目标

9.查看远程分支看不到的时候使用git fetch更新一下索引
git branch -r

10.不设置远程追踪配置
git branch BranchName --no-track

11. 设置远程追踪
git branch BranchName --set-upstream-to=origin/BranchName

# 查看该commit在本地的那个分支中
git branch --contains CommitID

# 查看该commit在远程分支的那个分支中
git branch -r --contains CommitID

# 查看该commit在本地和远程的那个分支中
git branch -a --contains CommitID

12.切换当前分支到BranchName(切换前需确认当前分支,没有未Commit的内容,否则会带到BranchName中)
git checkout BranchName

13.合并分支
git merge xxx(将xxx分支合并到当前分支)

14.拉取远程分支中的更新同时合并(该命令拉取本地不存在的远程分支时,会自动和当前分支合并一下,然后再新建一个分支.)
git pull <远程主机名> <远程分支名>:<本地分支名>(如果存在追踪关系,可以直接使用git pull)


15.拉取远程分支中的更新不合并
git fetch <远程主机名> <分支名>(不写分支名为,拉取所有远程分支)
git fetch origin master     不拉取分支master仅将当前分支的FETCH_HEAD设为远程master分支
git fetch origin master:tmp 拉取远程分支master到本地tmp, 不存在则创建
# 拉取到本地的代码临时版本会放到.git/FETCH_HEAD中,
# 而本地最高版本在HEAD中,先比较一下看看有哪些改动
# FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。
当前和远程库master中该文件的差异
git merge FETCH_HEAD        # 进行合并操作

# FETCH_HEAD指的是: 某个branch在服务器上的最新状态'.
# 每一个执行过fetch操作的项目'都会存在一个FETCH_HEAD列表, 
# 这个列表保存在 .git/FETCH_HEAD 文件中, 其中每一行对应于远程服务器的一个分支.
# 当前分支指向的FETCH_HEAD, 就是这个文件第一行对应的那个分支.
# 一般来说, 存在两种情况:
# 如果没有显式的指定远程分支, 则远程分支的master将作为默认的FETCH_HEAD.
# 如果指定了远程分支, 就将这个远程分支作为FETCH_HEAD.
# 通过我今天fetch拉取学彤xt_add_banner分支时的反馈,得出这一点.
# bogon:btc_haiwan_www liuhao$ git fetch lxt_upstream xt_add_banner
# From code.aliyun.com:liuxuetong/btc_haiwan_www
# * branch            xt_add_banner -> FETCH_HEAD

# 查看dev分支中有的, 而master中没有
git log dev ^master 

# 查看 dev 中比 master 中多提交了哪些内容
git log master..dev

# 不知道谁提交的多谁提交的少,单纯想知道有什么不一样
git log dev...master

# 再显示出每个提交是在哪个分支上:
git log --left-right dev...master
注意 commit 后面的箭头,根据我们在 –left-right dev…master 的顺序,左箭头 < 表示是 dev 的,右箭头 > 表示是 master的。
  • 设置分支追踪
二.设置分支追踪
1.新建本地分支同时追踪远程仓库origin分支master
如果不指定该本地追踪分支的名字,默认和远程仓库的分支名字一样
(此种方式新建分支时,和当前所在的本地分支无关,不会将已提交的文件带到新分支去)
git checkout -b LocalName --track origin/master 

2.将已有的本地分支设置追踪远程分支
git branch --set-upstream LocalName origin/master # 设置指定分支追踪到origin/master
或
git branch -f --track LocalName origin/master # 设置指定分支追踪到origin/master

git branch --set-upstream-to origin/master #设置当前分支追踪到origin/master

3. 在origin/master的基础上,创建一个新分支。
git checkout -b newBrach origin/master
  • 远程分支相关
三.远程分支相关
1.查看远程分支
git branch -r

2.查看所有的远程和本地分支
git branch -a

3.查看远程分支详情
git branch -av

4.查看远程分支详情以及追踪目标
git branch -avv

5.删除远程分支
git branch -r -d origin/BranchName

6.查看本地分支更加详细内容(包含当前分支追踪对象)
git branch -vv

7.查看本地分支详情
git branch -v
  • 注释
注释:
origin的意义 > 
当我们执行, git branch -a 时查看到结果
remotes/origin/HEAD -> origin/master #啥意思呢?
通过查看 .git/config文件或者使用git remote –v 发现 origin只是类似于别名一样的存在;

转载于:https://my.oschina.net/chinaliuhan/blog/3064974

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值