分支管理

分支
什么是分支?

软件项目中启动一套单独的开发线的方法,多分支并行开发,互不干扰。开发,测试完成后可以合并到主分支上。

为什么使用git分支?

1、可以很好的避免版本兼容开发的问题,避免不同版本之间的相互影响
2、封装一个开发阶段
3、解决bug的时候新建分支,用于对该bug的研究

相关命令

新建分支:

root@DESKTOP-33IBDMI:/mnt/e/git# git branch dev

列出项目所有分支:

root@DESKTOP-33IBDMI:/mnt/e/git# git branch
  dev
* master                #分支前面有*号,代表该分支为当前所在分支

删除分支

root@DESKTOP-33IBDMI:/mnt/e/git# git branch -d dev

更改分支名

root@DESKTOP-33IBDMI:/mnt/e/git# git branch
  bug
* master
root@DESKTOP-33IBDMI:/mnt/e/git# git branch -m bug dev #bug为旧分支名,dev为新分支名 root@DESKTOP-33IBDMI:/mnt/e/git# git branch dev * master

切换分支

root@DESKTOP-33IBDMI:/mnt/e/git# git branch
  dev
* master
root@DESKTOP-33IBDMI:/mnt/e/git# git checkout dev #切换到dev分支 Switched to branch 'dev' root@DESKTOP-33IBDMI:/mnt/e/git# git branch * dev master

注意:切换分支时,如果对分支上的文件进行修改,且没有commit,就切换到另一个分支上,这时会报错。当然可以加 -f 参数强制切换到另外的分支上,但当前分支上的变更会直接丢弃,一般不建议使用此参数。

实例:

root@DESKTOP-33IBDMI:/mnt/e/git# git branch
  dev
* master
root@DESKTOP-33IBDMI:/mnt/e/git# ls 11.txt root@DESKTOP-33IBDMI:/mnt/e/git# git checkout dev Switched to branch 'dev' root@DESKTOP-33IBDMI:/mnt/e/git# ls 11.txt root@DESKTOP-33IBDMI:/mnt/e/git# touch 22.txt root@DESKTOP-33IBDMI:/mnt/e/git# git add * root@DESKTOP-33IBDMI:/mnt/e/git# git commit -m "add 22.txt" [dev 461c95c] add 22.txt 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 22.txt root@DESKTOP-33IBDMI:/mnt/e/git# ls 11.txt 22.txt root@DESKTOP-33IBDMI:/mnt/e/git# git checkout master Switched to branch 'master' root@DESKTOP-33IBDMI:/mnt/e/git# ls 11.txt

合并分支:

root@DESKTOP-33IBDMI:/mnt/e/git# git branch dev * master root@DESKTOP-33IBDMI:/mnt/e/git# git merge dev #当前分支合并指定分支 Updating ef5b5ee..461c95c Fast-forward 11.txt | 1 + 22.txt | 0 2 files changed, 1 insertion(+) create mode 100644 22.txt root@DESKTOP-33IBDMI:/mnt/e/git# ls 11.txt 22.txt

注意:master切换到dev分支,对a文件修改后提交,再切换回master分支,也对a修改后提交,然后在master分支merge dev分支,此时会产生冲突。
查看冲突的文件:git diff –name-only –diff-filter=U

Git diff
使用场景

1、解决冲突
2、制作补丁

相关命令
root@DESKTOP-33IBDMI:/mnt/e/git# cat 22.txt
sdfsd
root@DESKTOP-33IBDMI:/mnt/e/git# echo werwer >>22.txt root@DESKTOP-33IBDMI:/mnt/e/git# git add 22.txt root@DESKTOP-33IBDMI:/mnt/e/git# echo lkkll >>22.txt root@DESKTOP-33IBDMI:/mnt/e/git# git diff #用于比较当前工作区跟暂存区的差异 diff --git a/22.txt b/22.txt index aa41325..9d15487 100644 --- a/22.txt # - 表示变更前的文件 +++ b/22.txt # + 表示变更后的文件 @@ -1,2 +1,3 @@ #在源文件第1行开始的2行和目标文件第1行开始的3行构成一个差异小结 sdfsd werwer +lkkll
root@DESKTOP-33IBDMI:/mnt/e/git# git diff --staged        #查看存入到暂存区,没提交到本地仓库的修改
diff --git a/22.txt b/22.txt
index e69de29..aa41325 100644
--- a/22.txt
+++ b/22.txt
@@ -0,0 +1,2 @@ +sdfsd +werwer root@DESKTOP-33IBDMI:/mnt/e/git# git commit -m "s w"
root@DESKTOP-33IBDMI:/mnt/e/git# git diff HEAD 22.txt        #比较的是工作区中的文件与版本库中文件的差异。HEAD指向的是版本库中的当前版本,而22.txt指的是当前工作区中的文件,也可以不具体指定
diff --git a/22.txt b/22.txt
index aa41325..d05c57f 100644
--- a/22.txt
+++ b/22.txt
@@ -1,2 +1,4 @@ sdfsd werwer +lkkll +sdfklkj
root@DESKTOP-33IBDMI:/mnt/e/git# git diff dev            #当前分支与dev分支的差异
git diff 分支名1 分支名2 #查看两个指定分支(已提交的)的差异,分支2 跟分支1的差别 git diff commitid1 commitid2 #用于列出两个历史提交的差异 git diff --stat #用于罗列有变更的文件

转载于:https://www.cnblogs.com/guarderming/p/10220005.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值