• git版本控制之四



    【简化指令】

      git add/status/log/commit 等指令都可以简化 比如 git a 就表示添加 git s 就表示查看状态等

      语法:git  config --global alias.a add  ==》 表示给 ade 命令起一个别名叫 a  后续  commit add ==》 commit a

      就可以完成一样的功能!!!

      


    【git 分支 branch】

      很多时候一个项目开发上线后,可能会遇到客户反映bug,开发者去修复bug或者增加若干新功能等场景,你不可能都把这些工作放在同一排程中,分支branch就是为了解决这种问题的,它可以把不同的业务逻辑从开发主线上分离开,不同分支上面的代码开发不会互相影响。最后把不同的分支(branch)汇聚到主干(master)上,就完成了互不干扰的高效开发。

      初始化一个git 项目 ,初次提交就会产生主分支(主干 master) , 创建分支:git branch branch1这样就创建了一个分支 branch1 

      查看分支:git branch

      切换分支: git checkout branch-name   切换到branche-name 这个分支 ,在这个分支内的任何操作,只要分支没有汇聚到主干,分支的任何操作对主干都是没有影响的!!!

      创建并切换分支:git checkout -b bbs :创建bbs分支并切换过去

    【合并分支branch】

      当分支的业务逻辑以及测试ok后,就可以把分支的代码同步到主干中,然后删除分支。这个分支的任务就算结束!!!

      同步到主干: git merge  bbs: 把bbs分支同步到master【注意切换到master分支】

      删除bbs分支:git branch -d bbs 


    【分支冲突:同一个文件被多个分支占用,修改情形】

      主分支提交的那个点【假如a.html】,紧接着创建的分支时【假如创建c、d 两个分支】,没有对分支里的内容进行修改和新增,删除等操作时,分支内是包含主文件提交的文件的!!!【因为此时主干和分支的提交点是一样的】

      然后c分支修改a.html ,切换到d分支修改a.html 

      合并:切换到master,merge合并两个分支,就会提示冲突,因为系统不知道采取那次修改作为最终合并结果。 这种方式下只能手动去修改a.html 再次提交以解决冲突


    【查看已经正常合并的分支和没有合并的分支】

      git branch --merged,同上面,主干和分支的提交点是一样的,使用命令查看git branch --merged,系统会认为这个新的,为操作过得分支是已经合并ok的,因为此时不需要合并!一旦新的branch有操作发生,使用git branch --merged 命令查看已经合并的就不包含这个新的分支了

      git branch --no-merged:查看没有合并的分支

      上面说到已经合并的分支时需要删除 【git branch -d branch-name】 ,没有合并的分支 使用 -d 参数删除会提示删除错误 没有合并的分支使用 -d参数权限不够 , -D 参数就可以删除 没有合并的分支


    【实际开发工作流】

      一般实际会新建一个master和develop分支

      master只存放干净的业务逻辑完好的,测试稳定的代码

      develop用于实际开发的分支。开发就只在develop分支上延伸分支就好了!


    【stash 临时存储区】

      作用:通俗的用一个场景来说明就是,假如你在写a分支中的某个功能模块业务,临时接到领导通知,说b分支某个功能模块出现了bug,需要排查,这时a分支才写了一半,没写完,直接提交不合适,放弃编辑那更蛋疼,

    stash临时存储区就是解决这个尴尬的处境的。你可以a分支写了一般的代码放到这个临时的存储区中暂存,切换到b分支去排查bug,排查完在去临时区继续a分支的编写。

      命令:git  stash 

      git stash list 查看 stash临时区

      恢复:git stash apply 恢复暂存区数据,临时区报错  git stash pop 恢复数据,删除存储区git

      删除 stash临时区 :git stash drop stash-name


    【tag标签】

      某一阶段,代码所有业务逻辑已经完成,测试稳定,就可以将这一版本的代码发布给用户使用,并且给这个版本使用 git tag v1.0 定义为第一个版本,后续有变更在继续1.1 或者2.0 这样发布!!!

      查看历史版本  git  tag

  • 相关阅读:
    缓存雪崩与缓存穿透
    读取表中最大值
    使用vscode在谷歌上运行代码
    elment 中tree组件展开所有和收缩所有节点
    深度系统商店提示无法安装软件依赖错误
    诗词,理解,品论
    《45个十分钟读懂资本论》原文、适合朗读版和个人见解
    《论持久战》全文
    OSError: [WinError 126] 找不到指定的模块。
    C++ 获取序列最大(或最小)的 N 个元素
  • 原文地址:https://www.cnblogs.com/Hijacku/p/14675372.html
Copyright © 2020-2023  润新知