【Git操作】分支branch操作

1、简介

几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。(摘抄自菜鸟教程

2、使用

(1)查看分支

查看本地分支:git branch
查看所有分支(含远端分支):git branch -a

(2)创建分支

创建一个空分支:git branch 分支名
从已有的本地分支创建新的本地分支(如从master分支),创建一个dev分支:git checkout -b dev
将远程git仓库里的指定分支拉取到本地(本地不存在的分支):git checkout -b 本地分支名 origin/远程分支名
这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来。
例如远程仓库里有个分支dev2,我本地没有该分支,我要把dev2拉到我本地:
img
若成功,将会在本地创建新分支dev2,并自动切到dev2上。
如果出现提示:

fatal: Cannot update paths and switch to branch 'dev2' at the same time.
Did you intend to checkout 'origin/dev2' which can not be resolved as commit?

表示拉取不成功。我们需要先执行

git fetch

然后再执行

git checkout -b 本地分支名 origin/远程分支名

(3)拉取分支

拉取远端分支:git pull origin dev
拉取所有远端分支:git fetch
设置git push,pull默认的提交获取分支,这样就很方便的使用git push 提交信息或git pull获取信息
设置跟踪:git branch --set-upstream-to=origin/dev
取消对master的跟踪:git branch --unset-upstream master

(4)切换分支

查看本地分支:git checkout BranchName
查看所有分支(含远端分支):git checkout origin/BranchName

(5)跟踪分支

设置跟踪:git branch --set-upstream-to=origin/BranchName
取消对master的跟踪:git branch --unset-upstream master

(6)删除分支

删除本地分支:git branch -d BranchName
删除远端分支:git push --delete origin BranchName

(7)重命名分支

Step1、将本地分支oldbranch切一个分支到本地

 git branch -m oldbranch newbranch

img
Step2、删除远程分支

git push --delete origin oldbranch

img
Step3、将本地新分支推送到远程

git push origin newbranch

img

(8)合并分支

方式一:界面
Step1:发起合并请求
在这里插入图片描述
Step2:填写合并信息
在这里插入图片描述
Step3:同意合并请求并完成合并
在这里插入图片描述
方式二:命令行
一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用以下命令将任何分支合并到当前分支中去:

git merge
$ git branch
* master
  newtest
$ ls
README        test.txt
$ git merge newtest
Updating 3e92c19..c1501a2
Fast-forward
 runoob.php | 0
 test.txt   | 1 -
 2 files changed, 1 deletion(-)
 create mode 100644 runoob.php
 delete mode 100644 test.txt
$ ls
README        runoob.php

以上实例中我们将 newtest 分支合并到主分支去,test.txt 文件被删除。

合并完后就可以删除分支:

$ git branch -d newtest

Deleted branch newtest (was c1501a2).
删除后, 就只剩下 master 分支了:

$ git branch
* master

(9)分支变基

当开发项目中存在一个主要开发分支时如develop,然后单独开发分支为dev1和dev2,要保证dev1始终处于从远端develop的最新的提交分岔出来的样子,具体操作步骤如下
git checkout dev1 (切换本地分支)
git fetch (拉取远端所有内容)
git stash (暂存本地当前内容)
git rebase origin/develop (变基、使得个人开发分支与主开发分支保持一致)
git stash pop (恢复本地当前内容)
之后可上传本地分支到远端分支

git add .
git commit
git push origin dev1 #有时可能需要加上强制推送的参数-f

(10)冲突解决

在合并分支或者分支变基的时候,若不同分支存在冲突之时,需要对比两分支的冲突点,选择某一分支或者重新编辑内容,可通过git diff来查看是否还存在冲突内容,若不存在,则可以通过命令git rebase --continue继续完成变基操作

猜你喜欢

转载自blog.csdn.net/weixin_44704985/article/details/113990949