• 2022/03/31 采用分支来保护远程仓库


    采用分支来保护远程仓库

    Git实现版本管理

    首先了解git的特点:

    • 每一次commit都会串成一条时间线,时间线就是一条分支(主分支(master))
    • HEAD指向mastermaster指向提交,以此确定当前分支的提交点

    具体形式如图:

    指向图

    Git的分支管理

    每一次提交代码,master分支都会向前移动一步。由于HEAD指向master所以始终是最新的版本。

    由于实际开发中每个人的进度不一样。所以不可能同时很多人对master分支进行操作。所以需要创建分支进行管理。

    Git的创建分支:

    *本质上Git创建分支就是创建一个指针,指向master分支。新建dev*分支

    git branch dev
    
    切换到新建的分支:

    HEAD指针的指向从master改到指向新建的dev分支

    git checkout dev
    

    新建分支

    一个指令完成创建和切换分支的操作:

    git checkout -b dev
    

    此时在有任何提交都是在dev上发生的。master主分支的指针指向不会改动。

    提交

    Git的分支合并:

    本质:

    直接将master指针的指向知道dev分支

    由于当前我们是在dev分支下,所以需要切换到master分支在进行合并

    切换master

    git checkout master
    

    然后将master的指针指向dev分支:

    分支合并

    git merge dev
    # git merge用于合并指定分支到当前分支
    
    此时查看所有分支:
    git branch
    # 带*的分支就是当前所在分支
    

    指令总结

    • 查看分支:git branch
    • 创建分支:git branch <分支名>
    • 同时在本地和远端建立分支:git checkout -b dev origin/dev
    • 切换分支:git checkout <分支名>orgit switch <分支名>
    • 创建+切换分支:git checkout -b <name>或者git switch -c <name>
    • 合并某分支到当前分支:git merge <name>
    • 删除分支:git branch -d <name>

    解决冲突

    要了解两个点:

    • 什么情况下会发生冲突
    • 如何解决冲突
    场景举例:
    # 创建新分支newDev
    git checkout -b feature1
    # 修改文件后添加到暂存区
    git add read.txt
    # 提交到版本库
    git commit -m "新的提交"
    # 切换到主分支
    git checkout master
    # 在master分支上修改read.txt文件,并提交到版本库
    git add read.txt
    git commit -m "master分支上的提交"
    

    此时在主分支上的情况是master分支和feature1分支都有了新的提交。如图:

    冲突

    此时执行合并代码就会提示存在不同:

    git merge feature1
    

    此时通过git status可以查看状态--->会提示两个分支同时修改的文件

    处理步骤:

    打开同时修改的文件查看内容--->统一内容以后在保存重新提交到暂存区--->再次提交--->再次合并

    Git<<<<<<<=======>>>>>>>标记出不同分支的内容

    修改好后重新添加到暂存区重新提交到版本库:--->这个操作是在master分支上

    git add read.txt
    git commit -m "新的提交"
    

    此时的版本关系是这样的:

    解决冲突

    此时可以查看分支合并情况:

    git log --graph --pretty=online --abbrev-commit
    

    删除feature1分支:

    git branch -d feature1
    

    指令总结

    • 当Git无法自动合并分支时,必须首先解决冲突。解决冲突后,再提交,合并完成。

    • 解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

    • git log --graph命令可以看到分支合并图。

  • 相关阅读:
    解决VS2005打开js,css等文件,中文都是乱码的问题
    PHP代码优化43条方法实战列表
    php长文章分页
    ASP通用分页类
    用Asp隐藏文件路径,实现防盗链
    用 PHP5 打造简易的 MVC 架构
    一男赶集卖猪,天黑遇雨发生的4个故事,有启发意义的哦!
    西湖雾湖夜湖雪湖
    php生成静态html分页实现方法
    将网络上的图片下载到本地ASP代码
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/16081318.html
Copyright © 2020-2023  润新知