git 分支管理和冲突解决

7 篇文章 0 订阅

创建分支

#git branch 分支名 //在当前分支上 创建xxx 分支
#git branch ben/dev //斜杠 创建一个分层的命名

切换分支

# git checkout xxx // 切换到 xxx 分支
# git checkout -b xxx// 创建 并切换 到 xxx 分支 等价于 git branch xxx git checkout xxx两条指令

查看分支

#git branch // 查看本地分支

#git branch -a //查看所有分支,包括远程

#git show-branch -a // 查看所有分支的详细信息

删除分支

git branch -D 分支名//删除分支,不能删除当前分支

合并分支

git merge xxx// 将xxx 分支合并到 当前分支
git rebase xxx//将xxx 分支合并到 当前分支
先看下面的例子,后两个分支master, dev
commit 节点的字母排序按照提交时间排序,

合并前状态

A -->B–>C–>E master
|
D—>F–>G dev

将master 分支合并到dev分支上,并查看git log

#git checkout dev 
#git merge  master

A --> B–>C–>D–>E->F–>G–>merge comiit //git log
基于时间轴合并

#git checkout dev 
#git rebase  master

而dev 分支执行git rebase master ,查看 git log

A—>B—>C—>E—>D—>F—>G // git log
dev 的提交 改基到 master 的最新的提交上,dev 的 分支基于提交版本从 B 到 E。
区别:
merge :两个分支按照时间顺序合在一起
rebase: 站在另一个分支的肩膀上

使用:
当需要合并别人的修改,一般使用merge命令 ;
当需要基于某个分支之上提交补丁或开发修改,一般用 rebase 命令

分支合并冲突

merge conflict

git merge branchname 
手动修改冲突
git add modify_filename 

git merge --continue

rebase conflict

git rebase branchname
手动修改冲突
git add modify_filename
git rebase --continue

git am 打补丁

这种方式常用于实际工作中需要在另一个分支测试验证修改的情况

git format-patch -1 // 基于分支的最新提交生成一个patch ,生成补丁文件***.patch

在这里插入图片描述

git checkout branchname // 切换到需要验证的分支上

git am ***.patch // 基于本地分支打补丁 创建新的提交 ,如下,出现冲突,手动修改冲突文件
在这里插入图片描述
git add modify_filename
git am --resolved
在这里插入图片描述

git log
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值