• python之路_最简单的Git介绍


    一、Git与Github介绍

    1.Git介绍  

      git是干什么用的?实现版本控制。各行各业都需要版本控制,主要实现版本控制的工具方式分别为svn和Git。

    2、Github介绍

      GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)

    3、二者关系

      Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。使用场景:a、无GitHub:在本地 .git 文件夹内维护历时文件;b、有GitHub:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库

    二、Git基本使用

    1、第一次使用

    '''
    1、在电脑上安装git软件(自行下载软件并安装)
    
    2、启动git:创建的项目的文件夹里面右键--->点击Git Bash Here
    
    3、git初始化:git init
    
    4、配置Git:分别执行命令:
        git config --global user.email "you@example.com"
        git config --global user.name "your name"
    '''

    2、版本控制

    '''
    1、文件添加到git:git add .   (.指目录下所有的文件,也可以指定文件)
    
    2、文件提交git备份:git commit -m "描述信息"
    
    3、查看版本状态:git status
    
    4、查看版本提交记录:git log
    
    5、回滚指定版本: git   reset --hard   版本号  (版本号可以通过git log查看,为随机字符串)
    
    6、查看往后提交记录:git reflog
    '''

      以上请注意:一定记得先add,后commit,add之后是没有放到版本里的,只有commit的时候才有版本。

    3、修复bug

      有这样一个场景,产品上线后,开发员A将在继续开发一个新的功能,当新功能开发到一半时候,突然线上的版本出现bug,A要对其进行立即的修复,流程如下:

    方式一:stash

      stash用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。

    #步骤:
    
    '''
    1、git stash:将开发到一半的直播功能,临时存储到“某个地方”
    
    2、git status:查看工作区回到当前版本未做任何操作前(此时即为上线的版本)
    
    3、修复bug
    
    4、git add .
    
    5、git commit -m '紧急修复bug'
    
    6、git stash pop:将开发到一半的直播功能从“某个地方”再次拿会工作区继续开发
    '''

      注意:执行 git stash pop 命令时,可能会遇到冲突,因为在紧急修复bug的代码和通过stash存储在“某个地方”的代码会有重合部分,所以执行 git stash pop 时候就会出现冲突,有冲突解决冲突即可。

    方式二:分支

      branch称为分支,默认仅有一个名为master的分支。一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支。创建新分支,即:拷贝一份当前所在分支代码到新分支。

    #分支相关命令:
    '''
    git branch 分支名称             创建分支
    git checkout 分支名称          切换分支
    git branch -m 分支名称        创建并切换到指定分支
    git branch                          查看所有分支
    git branch -d 分支名称         删除分支
    git merge 分支名称              将指定分支合并到当前分支
    '''

    修复bug流程:

    '''
        git branch dev                                    (创建开发分支dev,所有的开发在dev分支上进行)
        git checkout dev 
                            
        写代码
    
        git add .
        git commit -m 'xxx'                                
                            
        git checkout master   
        git branch bug                                   (在master分支创建bug分支,在bug分支上修复bug,master分支上存储的是正式上线的版本。)
        git chekcout bug 
                            
        修复bug 
    
        git add .
        git commit -m '紧急修复bug'
                            
        git checkout master 
        git merge bug                     (在bug分支上修复完bug后,提交。并再此与master上的版本合并,并不影响dev分支上的开发。) 
                            
        git branch -d bug 
                            
        git checkout dev 
        继续开发
    '''    

    三、Github基本使用

    1、代码托管

      正常的程序员一般都会存在多个办公地点,家里、公司或者咖啡厅,但是我们又不能随身将代码装在优盘或者随身携带电脑,这该怎么办呢?就会用到github进行代码托管。实例如下:

      初次上传代码:

    '''
    1、注册github账号,登录后创建代码仓库
    
    2、创建完后复制代码仓库的连接
    
    3、在git上创建别名:git remote add origin 代码仓库连接
    
    4、首次上传代码到github的master分支:git push origin master
    
    5、同样也可以将代码上传到dev分支:git push orgin dev
    
    '''

      具体应用实例:

    家里:
                        
            git add .
            git commit -m 'xx'
                        
            git remote add origin https://github.com/WuPeiqi/greenlu.git
                        
             git push origin master 
                        
    公司:
                        
           # 新公司第一次获取代码
             方式一
             git clone https://github.com/WuPeiqi/greenlu.git
                                
             方式二
             git init 
             git remote add origin https://github.com/WuPeiqi/greenlu.git
             git pull origin master 直接拿回来
                            
                            
             方式三
             git init 
             git remote add origin https://github.com/WuPeiqi/greenlu.git
             这的两句相当于git pull origin master 这一句
             git fetch origin master  拿到分支上了
             git merge origin/master  合并在一起
                       

    2、协同开发

      假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢?要提交,提交到dev吗,都上传了一半,这样回家拿出来的代码根本跑不起来。所以,为每一个人创建一个分支,各自都在各自的分支上写代码,互不影响。很短时间内大家暂时先合并一次,不然冲突太多了。但是这个分支不是dev,而是review分支,当老大看完没问题之后再合并到dev分支。

    #先创建了一个dev的分支
        git branch dev 
        git checkout dev 
        git push origin dev 
    #又创建了一个review的分支
        git branch review
        gir checkout review
        git push origin review 
    #创建自己的分支
        git branch haiyan 
        git checkout haiyan 
        git pull origin haiyan

    应用实例:

    张三创建了个文件
                git branch xxx 
                git checkout xxx
                touch a.py 
                ls 
                git add . 
                add commit -m '代码初始上线'
                git push origin xxx 
                ls
                vim a.py  #写了一些内容
                git add . 
                add commit -m '小功能开发完毕'
                git push origin xxx
                #现在两人都写完了,开始合并和review进行合并了
                git checkout review
                git pull origin review  #吧远程的review拉下来
                #把自己的合并发到review
                git merge xxx
                ls 
                git status 
                git push origin review 
                
                #再次写的时候
                git pull origin review  
    李四创建了个文件
                git branch yyy 
                git checkout yyy 
                touch s.py 
                ls 
                git add . 
                add commit -m '到了新公司好激动啊'
                git push origin sk 
                ls
                vim s.py  #写了一些内容
                git add . 
                add commit -m '小开发完毕'
                git push origin yyy
                #现在两人都写完了,开始合并和review进行合并了
                git checkout review
                #git pull origin review  #如果先没有吧远程的review拉下来
                #吧自己的合并发到review
                git merge yyy
                ls 
                git status 
                git push origin review   #这时候的review是最新的,那么张三先提交了,完了她还得拉先来再合并一次
            注意:老大看了review分支,如果OK,可以放到dev分支进行测试,如果测试没有问题了才放到master分支。
               master分支:线上的版本,永远保证线上的版本,无论是回滚到哪都是能用的

    以上内容参考博客:http://www.cnblogs.com/wupeiqi/articles/7295372.html

  • 相关阅读:
    使用docker搭建gitlab版本控制系统
    Spring Boot与Docker部署
    CentOS7 使用yum命令安装Java SDK(openjdk)
    配置带用户权限的docker registry v2
    Docker搭建带有访问认证的私有仓库
    CentOS7 关闭防火墙
    CentOS7.2网络配置
    Docker Machine 简介
    docker的常用命令汇总
    实时查看docker容器日志
  • 原文地址:https://www.cnblogs.com/seven-007/p/8476423.html
Copyright © 2020-2023  润新知