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

原文地址:https://www.cnblogs.com/seven-007/p/8476423.html