(三)Git分支基础

四、Git分支

1、使用分支

查看分支

#查看分支
$ git branch

创建分支

#创建分支
$ git branch 分支名称
#修改分支名称
$ git branch -m 修改分支名称

切换分支

#切换分支
$ git checkout 要切换的分支名

Git分支推送到远程仓库分支

切回cat分支下创建brance.info文件查看情况

切回master分支下查看分支情况

2.对分支的误解和合并分支

Git分支:Git中的分支不是通过复制目录或者文件来进行改动形成的,它就是一个指标、一张贴纸、贴在某个commit上而已

合并分支

#合并分支
$ git merge 要合并的分支名

切换分支Git做了什么

主要做两件事

  • 更新暂存区和工作区目录
  • 变更HEAD的位置

合并过的分支需要保留嘛

合并后,原本没有内容都有了,分身就没有利用价值可以凭个人喜好,想删就删了

3.删除分支

删除本地仓库

#删除本地分支
$ git branch -d cat
#如果删除不掉强制删除-d变为-D
-d删除本地分支

注:如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D

不小心把没合并的分支删除了,怎么拯救

合并过的分支想留就留、想删就删,Git的分支并不是复制文件到某个目录,所以不会因为删掉分支文件就不见了

注:但如果删除的是还未合并的分支就不一样了

cat分支是从master分支出去的,当前领先master分支两次Commit,而且还没有合并过,这时如果试着删除cat分支,他会合并这个分支还没有全部合并哦

$ git branch -d cat
error: The branch 'cat' is not fully merged.
If you are sure you want to delete it, run 'git branch -D cat'.

上面不是已经删除cat分支了吗,怎么还在?这里再次跟大家说明一下分支的概念:分支只是一个指向某个Commit的指标,删除这个指标并不会使那些Commit消失。
git branch new_cat 276ba62
注意:

这个命令"请帮我创建一个叫做new_cat的分支,让它指向17b23n3这个Commit",也就是在拿一张贴纸贴回去。

git branch
切换过去看看
git checkout new_cat
确认一下文件列表
ls -al
删除远程仓库分支

4.分支综合练习

在工作中,为实现某个新的需求,创建一个分支(dev),在这个分支上开展工作,正在此时,你需要按照如下方式处理:

  1. 切换到你的线上分支(master)
  2. 为这个紧急任务新建一个分支(fix),并在其中修复它
  3. 在测试通过之后,切换回线上分支(master)
  4. 然后合并这个修补分支(fix),最后将改动推到线上分支(master)
  5. 切换回你最初工作的分支上(dev)继续工作
#创建dev分支
$ git branch dev
#切换分支
$ git checkout dev
#创建UserDao.java文件
#在dev分支开发一些新的功能
public class UserDao{}
#提交dev分支的文件
$ git add UserDao.java
$ git commit -m "add userdao.java in dev branch"
#切换master分支
$ git checkout master
#创建新的修复分支fix
$ git branch fix
#切换fix分支
$ git checkout fix
#修复问题
$ vim a.info
#提交修改文件到本地仓库
$ git commit -a -m "fix update a.info"
#切换master分支
$ git checkout master
#合并分支
$ git merge cat
#推送到线上分支
$ git push
#切换到dev分支
$ git checkout dev

5.合并分支冲突问题

有时候合并操作不会如此顺利。如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git就没办法合并它们,同时会提示文件冲突。

演示冲突


$ git merge b1
Auto-merging a.txt
CONFLICT(冲突) (content): Merge conflict in a.txt
Automatic(自动合并) merge failed; fix conflicts and then commit the result.

查看文件内容


<<<<<<< HEAD
#master up

=======
# b1 up
>>>>>>> b1

解决冲突

修改冲突文件

注意:

手动保留自己需要的内容,删除不要的内容

提交文件
$ git add a.txt
$ git commit  -m "test"

总结

  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值