【git 分支】git基本操作

1、分支操作

1.1 查看所有分支

git branch 

1.2 分支创建

git branch v1
git branch v1 master #从master创建一个分支v1
git checkout v1 #创建v1分支并切换
git checkout v1 master #从master创建一个新的分支并切换

1.3 分支切换

git checkout v1

1.4 分支合并

git merge v1 #将v1分支内容合并到当前分支。

注意:分支合并有两种情况。以当前在master,要将v1合并到master为例

  • 如果v1是master创建出分支后进行commit操作后的分支,且master指针未前移(master上没有commit或其他分支merge过来),那么合并是fast forward的,即直接将master移动到v1即可
  • 如果v1是master创建出分支后进行commit操作后的分支,且master指针前移过了(master上有commit或其他分支merge过来)。此时master和v1有共同的父节点。这时将v1merge到master上就是在master前面再新创建一个节点,然后将v1内容merge过来,并把master指针前移到新创建的节点上。

1.5 分支删除

git branch -d v1
  • 若无其他分支和v1指向同一个地方,删除v1意味着删除了从v1父节点到v1这里的所有操作。
  • 反之,只是删除了v1的信息。无其他影响。

2、冲突解决

有分支合并就可能会有冲突。冲突是如何产生的呢?

如果修改了两个带合并分支里同一个文件的同一部分,就会产生分支,git就无法合并。这种情况下只能由人来进行解决。

在冲突时可以利用git status查阅冲突的文件,会有提示。

在人工解决完后再merge就不会有冲突了。

3、远端分支

3.1 远端分支的表示

远程仓库名/分支名
  • 首先明确本地分支和远端分支是两个,即便名称相同的也是两个。git clone仓库时会同事建立本地分支master和远端分支origin/master,它们都指向origin/master的最后一次提交。

3.2 推送到远端

git push origin master
git push [远端仓库名] [本地分支]:[远端分支] #这是全写 默认本地分支为当前分支

3.3 获取远端分支内容

git fetch origin [远端分支]:[本地分支] 
#默认远端分支是master。即不写远端分支时,会拉去master
#默认不创建本地分支。即不写本地分支时,只将远端分支拉取回来。如果写了本地分支名,会在拉取回的远端分支名基础上,再创建一个新的本地分支
  • 值得注意的是,fetch回来远端的分支后,是无法对远端分支操作的,如果想对其操作,需要git branch或git checkout -b新的分支,然后进行操作

3.4 比较获取的远端分支和自己的分支

比较差别是为了更好的merge

git diff 本地分支名 远端仓库名/远端分支名

3.5 删除远端分支

git push origin :v1 #git push origin :[远端分支名]

4、常见开发模式

一般来说,多人开发时会创建master、develop、user1、user2…多个分支

master用来发布稳定版本

develop用来合并多人的分支,作为稳定版本之间的版本

多个用户都在user1 user2 user3上开发。

通常来说,各个用户都提交到各自的分支上,并时不时的向远端自己对应的分支push。

若阶段工作做完了,则merge到develop分支。在develop分支无误后,merge到master分支。

有一个人专门管理各个用户分支的合并工作(即将各个用户远端分支merge到develop上)。

同时,为了获取他人开发的代码(从develop获取),也需要将develop上的内容fetch回本地,然后将其merge到自己的分支上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值