笔记

作者: 口口帅日日 | 来源:发表于2019-11-13 16:45 被阅读0次

    手动实现代码上线

    rz , scp , xftp 登录代码托管平台,手动执行git pull
    缺点:
     1. 全程运维参与,占用大量时间
     2.如果节点多,上限速度慢
     3.人为失误多,目录管理混乱  
     4.回滚不及时,或者难以回退
    

    快速集成优点、交付、部署

    快速发现错误
    节省人力成本
    加快软件开发进度
    目的:
        使用持集成来简化工作,同事快速迭代产品代码,保证高质量
    

    Git实战

    1573441362867.png

    第一章 快速入门

    1.1 什么是Git
    Git是一个分布式的版本控制软件。
    软件,类似于QQ、office、dota等安装到电脑上才能使用的工具。
    版本控制,类似于毕业论文、写文案、视频剪辑等,需要反复修改和保
    留原历史数据。
        分布式
        文件夹拷贝
        本地版本控制
        集中式版本控制(断网或者中心坏掉,就没法用了)
        分布式版本控制(在本地也保存了每个版本的代码)
    
    image.png

    1.文件管理
    2.本地版本控制
    3.集中式版本控制
    4.分布式版本控制
    

    1.3 为什么要做版本控制

    要保留之前所有的版本,以便回滚和修改。
    
    image.png

    第二章 “抖音”创业史

    2.1 第一阶段:单枪匹马开始干

    想要让git对一个目录进行版本控制需要以下步骤:
    进入要管理的文件夹
    执行初始化命令
        git init
    管理目录下的文件状态
        git status
    
    管理指定文件(红变绿)
    个人信息配置:用户名、邮箱 【一次即可】
     git config --global user.email "oldxu@qq.com"
     git config --global user.name "oldxu"
    
    生成版本
    git commit -m '描述信息'
    查看版本记录
    git log
    

    2.2 第二阶段:拓展新功能

    git add
    git commit -m '短视频'
    

    2.3 第三阶段:“约饭事件”

    回滚至之前版本
    git log
    git reset --hard 版本号
    
    
    回滚之之后版本
    git reflog
    git reset --hard 版本号
    

    2.4 小总结

    git init #初始化一个目录为版本库
    git add #将没有被管理的文件,加入git进行管理
    git commit #将内容提交到版本库中
    git log #查看提交的历史记录
    git reflog #查看所有的历史提交记录
    git reset --hard 版本号  #回退到指定的提交版本记录
    
    image.png

    2.5 第四阶段:商城&紧急修复bug

    基于当前版本开发了新功能,并且已经上线,但是发现最初版本有bug,我们将bug修复,
    但是是在新版本上线之后修复完成的,这是我们将master合并到修复bug的线,最后将合并的线再合并到master上边
    
    image.png

    2.5.1 分支

    每次代码提交只需要把后一次提交的指向前一次即可,因为其中将100个文件的代码转交给10个的,不如相同的去处将不同的10个代码保留下来,转交给100个的
    
    分支可以给使用者提供多个环境的可以,意味着你可以把你的工作从开发主
    线上分离开来,以免影响开发主线。
    
    image.png

    因为我们的开发不能再master上进行,master上必须是可用的代码,
    这里我们基于3开发新功能,或者是处理BUG,最后在6完成之后,进行合并产生新的版本7(合并字样处)
    

    2.5.2 紧急修复bug方案

    image.png
    image.png

    在3的基础上我们有开发了新功能,但是3版本出现了bug,
    这是我们已经将开发的新功能发布了,bug修复完在后,这样就会导致新的问题,代码提交会出现错误
    [root@git dy]# git branch dev #建立新分支
    [root@git dy]# git branch
    dev
    * master
    

    开发商城功能

    [root@git dy]# git checkout dev     #进入到分支
    [root@git dy]# touch shopping-register.py
    [root@git dy]# touch shopping-login.py
    [root@git dy]# git add .
    [root@git dy]# git commit -m '商城开发'
    [root@git dy]# vim index.html 
    [root@git dy]# git add .
    [root@git dy]# git commit -m '商城开发50%'
    [master d8839ec] 商城开发50%
     4 files changed, 2 insertions(+)
     create mode 100644 shopping-login.py
     create mode 100644 shopping-register.py
     create mode 100644 shopping.py
    [root@git dy]# ls
    index.html  shopping-login.py  shopping.py  shopping-register.py
    

    完成开发一半的时候3出现bug

    [root@git dy]# git checkout master   #回到master
    [root@git dy]# ls  #这里不会看到dev分支下面做的操作(在合并之前)
    index.html
    [root@git dy]# git branch bug    #创建BUG分支
    [root@git dy]# git checkout bug  #进入到BUG分支
    Switched to branch 'bug'
    [root@git dy]# git branch
    * bug
      dev
      master
    [root@git dy]# cat index.html   #模拟修复bug
    <h1>初创</h1>
    <h1>开发视频功能</h1>
    <h1>开发约功能</h1>
    <h1>修复bug </h1>
      [root@git dy]# git add .
    [root@git dy]# git commit -m '修复bug100%'
    [bug a4be0d8] 修复bug100%
     1 file changed, 1 insertion(+)
    [root@git dy]# git checkout master   #回到master
    Switched to branch 'master'
    [root@git dy]# git merge bug     #站在master上合并bug分支
    Updating ece00c9..a4be0d8
    Fast-forward
     index.html | 1 +
     1 file changed, 1 insertion(+)
    [root@git dy]# git log
    commit a4be0d86939596a78b0e8b17b4a7bddfaf2724cd
    Author: lsc <1264346453@qq.com>
    Date:   Mon Nov 11 20:51:01 2019 +0800
    
    修复bug100%
    

    [root@git dy]# git checkout dev    #会到dev
    [root@git dy]# touch shopping-pay.py    #创建新文件
    [root@git dy]# git add .
    [root@git dy]# git commit -m '商城功能开发100%'
    [dev 5ce242d] 商城功能开发100%
     2 files changed, 1 insertion(+), 1 deletion(-)
     create mode 100644 shopping-pay.py
    [root@git dy]# cat index.html   #完善功能
    <h1>初创</h1>
    <h1>开发视频功能</h1>
    <h1>开发约功能</h1>
    <h1>开发商城功能</h1>
    <h1>开发商城功能100%</h1>
    

    去master合并dev

    [root@git dy]# git merge dev   #这时出现错误,
    Auto-merging index.html
    CONFLICT (content): Merge conflict in index.html
    Automatic merge failed; fix conflicts and then commit the result.
    

    因为其中出现了向同行,机器不知道处理那一条

    [root@git dy]# cat index.html 
    <h1>初创</h1>
    <h1>开发视频功能</h1>
    <h1>开发约功能</h1>
    <<<<<<< HEAD
    <h1>修复bug </h1>
    =======
    <h1>开发商城功能</h1>
    <h1>开发商城功能100%</h1>
    >>>>>>> dev
    -----------------
    <h1>初创</h1>
    <h1>开发视频功能</h1>
    <h1>开发约功能</h1>
    <h1>修复bug </h1>
    <h1>开发商城功能</h1>
    <h1>开发商城功能100%</h1>
    
    我们将其合并
    

    2.5.3 命令总结

    查看分支
    创建分支
    切换分支
    分支合并(可能产生冲突)
    删除分支
    1 git branch
    1 git branch 分支名称
    1 git checkout 分支名称
    git merge 要合并的分支
    注意:切换分支再合并
    
    1 git branch -d 分支名称
    

    2.5.4 工作流

    image.png

    2.6 第五阶段:进军三里屯

    image.png
    有钱之后就要造呀,一个人在三里屯买了一层楼做办公室。
    

    2.6.1 第一天上班前在家上传代码

    image.png
    image.png
    image.png
    image.png
    首先,需要注册github账号,并创建远程仓库,然后再执行如下命令,将代码上传到github。
    

    2.6.2 初次在公司新电脑下载代码

    image.png windows安装git工具右键启动 image.png
    image.png
    image.png image.png
    image.png
    image.png
    在公司下载完代码后,继续开发
    1. 给远程仓库起别名
     git remote add origin 远程仓库地址
    2. 向远程推送代码
     git push -u origin 分支
    
    1. 克隆远程仓库代码
     git clone 远程仓库地址 (内部已实现git remote add origin
    远程仓库地址)
    2. 切换分支
     git checkout 分支
    

    2.6.3 下班回到家继续写代码

    2.6.4 到公司继续开发

    1. 切换到dev分支进行开发
     git checkout dev
    2. 把master分支合并到dev [仅一次]
     git merge master
    3. 修改代码
    4. 提交代码
     git add .
     git commit -m 'xx'
     git push origin dev
    
    1. 切换到dev分支进行开发
     git checkout dev
    2. 拉代码
     git pull origin dev
    3. 继续开发
    4. 提交代码
     git add .
     git commit -m 'xx'
     git push origin dev
    
    开发完毕,要上线
    

    2.6.5 在公司约妹子忘记提交代码

    1. 切换到dev分支进行开发
     git checkout dev
    2. 拉最新代码(不必再clone,只需要通过pull获取最新代码即可)
     git pull origin dev
    3. 继续开发
    4. 提交代码
     git add .
     git commit -m 'xx'
     git push origin dev
    
    1. 将dev分支合并到master,进行上线
     git checkout master
     git merge dev
     git push origin master
    2. 把dev分支也推送到远程
     git checkout dev
     git merge master
     git push origin dev
    
    1. 拉代码
     git pull origin dev
    2. 继续开发
    3. 提交代码
     git add .
     git commit -m 'xx'
    注:忘记push了
    

    2.6.6 回家继续写代码

    2.6.7 到公司继续写代码

    2.6.8 其他

    image.png
    1. 拉代码,发现在公司写的代码忘记提交...
     git pull origin dev
    
    2. 继续开发其他功能
    
    3. 把dev分支也推送到远程
     git add .
     git commit -m 'xx'
     git push origin dev
    
    1. 拉代码,把晚上在家写的代码拉到本地(有合并、可能产生冲突)
     git pull origin dev
    
    2. 如果有冲突,手动解决冲突
    
    3. 继续开发其他功能
    
    4. 把dev分支也推送到远程
     git add .
     git commit -m 'xx'
     git push origin dev
    
    git pull origin dev
    等价于
    git fetch origin
    git merge origin/dev
    

    2.7 小总结

    添加远程连接(别名)
    推送代码
    git remote add origin 地址
    git remote -v
    
    1 git push origin dev
    下载代码
    拉取代码
    记录图形展示
    第三章 其他
    3.1 git标签
    1.git标签作什么用? 当Git仓库内的数据有改善或者功能更新时,我们经常
    会打一个类似于软件版本号的标签tag,这样通过标签就可以将版本库中的
    某次commit给记录下来,便于我们后续将特定时期的数据取出来用。简单
    来说:标签也是版本库的一个快照。
    2.为什么要使用git标签? Git有commit,为什么还要引入tag?“请把上周一
    的那个版本打包发布,commit号是6a5819e...”, “一串乱七八糟的数字不好
    找!”如果换一个办法:
    “请把上周一的那个版本打包发布,版本号是v1.2”。按照 tag v1.2查找
    commit就行!”所以,tag就是一个让人容易记住的名字,它跟某个commit
    绑在一起。
    1 git clone 地址
    git pull origin dev
    等价于
    git fetch origin dev
    git merge origin/dev
    
    1 git log --graph --pretty=format:"%h %s"
    3.git标签基本使用 1、对当前最新提交的代码创建标签,-a标签名称,-m标签描述
    2、如何查看刚才打的标签。
    

    3.2 免密码登录

    URL中体现
    SSH实现
    #1.将当前最新代码进行标签
    [root@gitlab demo]# git tag -a "v1.1" -m "描述信息"
    #2.创建标签,指定commitID
    [root@gitlab demo]# git tag -a v1.0.1 30e2840 -m
    "Messages"
    
    [root@gitlab demo]# git tag     #git log -l
    v1.0.0
    v1.0.1
    
    原来的地址:https://github.com/oldxu/treenb.git
    修改的地址:https://用户名:密码@github.com/oldxu/treenb.git
    git remote add origin https://用户名:密码@github.com/oldxu/treenb.git
    git push origin master
    
    git自动管理凭证
    

    3.3 git忽略文件

    让Git不再管理当前目录下的某些文件。.gitigonore
    通常情况下有如下文件可能需要忽略
    1.程序运行时产生的垃圾文件
    2.程序运行时产生的缓存文件
    3.程序本地开发使用的图片文件
    4.程序连接数据一类的配置文件
    更多参考:https://github.com/github/gitignore
    

    3.4 git整体总结

    1.如何提交代码至本地版本管理
    1. 生成公钥和私钥(默认放在 ~/.ssh目录下,id_rsa.pub公钥、
    id_rsa私钥)
       ssh-keygen
    2. 拷贝公钥的内容,并设置到github中。
    3. 在git本地中配置ssh地址
     git remote add origin
    git@github.com:WuPeiqi/dbhot.git
    
    4. 以后使用
     git push origin master
    
    *.h
    !a.h
    files/
    *.py[c|a|d]
    
    2.如何回退代码
    3.git commit是什么东西?
    类似于虚拟机的快照
    4.git分支?
    1.创建分支
    2.合并分支
    3.分支冲突解决
    5.git与码云|github之间如何关联?
    6.git标签
    git init
    git add .
    git commit -m "Message"
    git log
    git reflog
    
    1 git reset --hard "commit版本号"
    git merge 分支名  
    git branch
    git checkout     切换分支
    
    git remote add
    git push origin
    git pull origin
    
    git tag -a "标签名" -m "描述"
    git show version
    
    7.git 四大区域 工作区 暂存区 本地版本库 远程仓库
    8.git flow工作流程an'zh

    相关文章

      网友评论

          本文标题:笔记

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