Git 多分支开发

多分支开发

常用命令
  • 查看分支

    git branch  # 绿色表示当前所在分支
    
  • 新建分支

    git branch 分支名
    
  • 切换分支

    git checkout 分支名
    git checkout -b 分支名  # 表示创建并移动至该分支
    
  • 删除分支

    git branch -D 分支名
    
  • 分支合并

    git merge 分支名
    

    需要注意的是:在合并分支时一定要先回到主分支在进行分支的合并

    若是, 合并过一次后, 从分支删除了某一文件, 那么再次合并, 主分支内的该文件也会被删除

分支合并冲突
  • 冲突

    冲突一般指的是同一文件同一位置的代码, 在两种版本的仓库合并是, 版本的管理软件无法判断应该保留哪个一个版本, 因此会提示该文件发生冲突, 而冲突一般都需要去手动解决.

  • 查看冲突

    git diff
    
    diff --cc 6.py
    index cb1c3c7,22d8095..0000000
    --- a/6.py
    +++ b/6.py
    @@@ -1,1 -1,1 +1,5 @@@
     -print('this is 6.py')
    ++<<<<<<< HEAD
     +print('this is 6.py')
    ++=======
    ++print('this is 6.py')
    ++>>>>>>> d8d92fe2b69111f99dd034bdd02c853d8eabdd31
    
  • 解决冲突

    # 冲突报错
    CONFLICT (add/add): Merge conflict in 6.py
    Auto-merging 6.py
    Automatic merge failed; fix conflicts and then commit the result.
    
    CONFLICT关键字
    
    解决冲突就是将冲突文件中的
    <<<<<<< HEAD
    =======
    >>>>>>> d8d92fe2b69111f99dd034bdd02c853d8eabdd31
    删除
    
    然后重新add, commit
    最后合并分支即可
    
  • 常见错误

    • git出现 [rejected] dev - dev (fetch first)的原因–不可跨版本提交

      问题非常明显就是你当前的仓库和远程仓库中的数据没有同步,并且推送的时候有冲突,说明别的开发者已经更新了仓库,但你没有及时的拉取

    • 解决方法–拉取版本库中最新版

      首先先git pull同步代码
      然后再git push推送

    • git push 无法推送

      • 有可能是克隆的分支没有获取管理员的权限
        在这里插入图片描述
线上分支合并
  • 线上分支和并, 在pull Request中, 指向从那个分支合并至哪个分支

    • 报绿色表示无冲突, 可以正常合并

      • 合并分支 – 普通合并

        普通合并是指, dev上的所有日志被直接合并至主分支

      • 扁平化分支 – 变基

        忽略dev分支中的日志记录, 只留一个最后合并的日志记录

线下分支合并提交
  • 线下分支正常合并
    • git merge 被合并分支名
    • git push origin master
    • 切换至dev
      • git push origin dev
合并分支冲突解决
  • 上文提过
远程仓库回滚
  • 本地回滚版本
    • git reset --hard xxxx
  • 强制提交至线上
    • git push origin master -f
    • 一般不使用, 但是使用也没事, 顶多麻烦点, 傻逼点
其他
  • pull与fetch区别
    • git pull: 拉取并合并
    • git fetch: 拉取但需要手动合并
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值