Git相关笔记《分支管理》

作者: itzhaolei | 来源:发表于2018-12-23 16:36 被阅读0次

    分支的基本操作

    branchName 分支名称

    • 创建
    git branch branchName
    
    • 切换分支
    git checkout branchName
    
    • 创建并切换到该分支
    git checkout -b branchName
    
    • 查看分支列表
    git branch
    
    • 将指定分支下的修改合并到当前分支
    git merge branchName
    
    • 删除指定分支
    git branch -d branchName
    
    • 强制删除没有被合并过的指定分支
    git branch -D branchName
    
    • 查看分支合并图
      • 简洁的分支合并图
      git log --graph --pretty=oneline --abbrev-commit
      
      • 详细的分支合并图
      git log --graph
      

    冲突

    <<<<<<< HEAD 冲突开始部分
    ======= 差异的分割
    >>>>>>> 冲突结束部分

    <<<<<<< HEAD
    Creating a new branch is quick & simple.
    =======
    Creating a new branch is quick AND simple.
    >>>>>>> feature1
    

    小结有冲突的话,要先解决冲突,再进行add commit就可以合并了

    分支管理策略

    • 合并模式
      Fast forward 快进模式,也是默认使用的模式。该模式下删除分支后,会丢掉分支信息。
      --no-ff 禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样会更安全,而且有利于从分支历史上就可以看出分支信息
    • 管理策略
      master 将主分支作为发布版本的稳定分支
      vice master 新开辟一个代表主分支的vice master,其他分支的提交都提交给该分支,由该分支将稳定的内容提交给master
      other branch 开发调试的子分支
      分支管理图打样

    Bug分支

    1、stash 可以暂时储存工作区的修改内容,然后我们可以创建分支来进行修复Bug。
    2、stash 可以存在多个,取对应的stash@{0}就可以了

    • 暂时存储工作区内容
      • 存储
      git stash
      
      • 取出存储内容
        • 取出后直接删除备份
        git stash pop
        
        • 取出后不删除备份
          • 取出
          git stash apply
          
          • 删除
          git stash drop
          
        • 取出指定的stash内容
        git stash apply stash@{0}
        
    • 查看stash列表
    git stash list
    

    小结
    修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
    当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

    远程仓库

    • 查看远程仓库信息
      • 只查看远程仓库名称
      git remote
      
      • 查看详细的远程仓库信息
      git remote -v
      
    • 删除本地关联的远程仓库信息
    git remote rm origin
    
    • 推送分支
      • 推送指定分支到远程仓库
      git push origin branchName
      
      • 注意。一般mastervice master需要推送,其他修改Bug、增加功能的分支不需要提交给远程。
    • 拉取远程仓库的内容到本地
    git pull
    
    • 本地分支与远程分支建立联系
    git branch --set-upstream-to=origin/branchName branchName
    
    • 向本地仓库添加远程库
      git@gitee.com:userName/name.git 远程仓库的SSH地址,也支持HTTPS地址
    git remote add origin git@gitee.com:userName/name.git
    
    • 首次提交本地仓库到远程库
      -u 将本地仓库master与远程仓库master进行关联
      -f 覆盖远程仓库现有的内容
      origin master 远程主分支
    git push -u -f  origin master
    

    多人协作

    • 多人协作工作模式

    多人协作的工作模式通常是这样:
    1、首先,可以试图用git push origin <branch-name>推送自己的修改;
    2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    3、如果合并有冲突,则解决冲突,并在本地提交;
    4、没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

    小结
    如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

    • 修改合并冲突历史
      • rebase操作可以把本地未push的分叉提交历史整理成直线;
      • rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
      git rebase
      

    相关文章

      网友评论

        本文标题:Git相关笔记《分支管理》

        本文链接:https://www.haomeiwen.com/subject/oupccqtx.html