Loading

Git与GitHub学习笔记

一、Git简介

​ Git是世界上最先进的分布式版本控制系统。

​ 由Linus.Torvalds(林纳斯.托瓦兹)在两周内完成

二、版本控制能做些什么

  1. 协同开发
  2. 冲突解决
  3. 版本记录
  4. 历史追查
  5. 代码备份
  6. 版本还原
  7. 权限管理
  8. 分支管理
  9. 代码审查

三、集中管理型版本控制

经典的集中管理型:CVS, VSS, SVN

特点:实现了大部分开发中对版本管理的要求,结构简单,上手容易。

问题:

1. 服务器一旦崩溃,代码无法恢复
2. 要求必须是完整版本,无法做小版本
3. 系统正在上线运行,如何管理几个版本?
4. 如何管理一个分布在世界各地,互不相识的大型开发团队。

四、分布式

五、Git实操

  1. Git设置命令

    git config --global user.name "xxx"

    git config --global user.email "xxx@hainan.net"

    Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。

    --global 表示全局属性

  2. Git实战操练

    1. 创建版本库

      在项目文件夹内执行 git init

    2. 提交文件

      • 新建文件后,通过 git status 进行查看文件状态
      • 将文件添加到暂存区,通过 git add 文件名
      • 提交文件到版本库 git commit
      • 边写注释 完成提交
      • 也可以 git commit -m "注释内容" ,直接带注释提交
    3. 查看文件提交记录

      • 执行 git log 文件名,进行查看历史记录
      • git log --pretty=oneline 文件名 ,进行简易信息查询
    4. 回退历史

      • git reset --hard HEAD^ 回退到上一次提交
      • *git reset --hard HEAD~n * 回退n次操作
    5. 版本穿越

      • 进行查看历史记录的版本号

        执行git reflog 文件名

      • 执行 git reset --hard 版本号

    6. 还原文件

      • git checkout --文件名
    7. 删除文件

      • 先删除文件

      • git add 提交

五、工作区 + 暂存区 + 本地库

六、分支

  1. 创建分支

    •   git branch <分支名>
      
    •   git branch -v 
        查看分支
      
  2. 切换分支

    •   git checkout <分支名>
      
    • 一步完成:

      git checkout -b <分支名>
      
  3. 合并分支

    • 先切换到主干

      git checkout master
      
    •   git merge <分支名>
      
  4. 删除分支

    • 先切换到主干

      git checkout master
      
    •   git branch -D <分支名>
      

七、冲突

通过	*git diff*	找到发生冲突的文件及冲突内容,然后修改内容,再次	*git add*	和	*git commit* 

八、Github

  1. 简介

    Github是一个Git项目托管网站,主要提供基于Git的版本托管服务

  2. 实操

    1. 增加远程地址

      git remote add <远端代号> <远端地址>
      
    2. 推送到远程库

      git push <远端代号> <远端地址>
      
    3. 从GitHub上克隆一个项目

      git clone <远端代号> <远端地址>
      
    4. 从GitHub上更新一个项目

      git pull <远端代号> <远端地址>
      

九、SSH

  1. 先检测有无.ssh

    cd ~/.ssh
    
  2. 创建ssh.key

    ssh-keygen -t rsa -C xxx@qq.com
    
  3. 查看公钥(此处需要先进到上一步生成秘钥的路径处执行)

    cat id-rsa.pub
    #cat 是用来查看小文件的linux命令
    
  4. 复制后粘贴到GitHub上

    setting--》SSH and GPGkeys

  5. 改用ssh连接

    git remote add <ssh远端代号> <ssh远端地址>
    
  6. 用ssh提交(不用填写账号密码且更安全)

    git push <ssh远端代号> <ssh远端地址>
    

十、Git工作流

  • 简单来说就是,一个项目的成员们在工作中统一使用Git的工作方式

    • 集中式工作流(一般用于svn)
      • 像SVN一样,集中式工作流以中央仓库作为项目所有修改的单点实体。所有修改都提交到Master这个分支上。这种方式与SVN的主要区别就是开发人员有本地库。Git很多特性并没有用到。
    • GitFlow工作流
      • Gitflow工作流通过为功能开发、发布准备和维护设立了独立的分支,让发布迭代过程更流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。
      • 主干分支 master
        • 主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境完全一致。
      • 开发分支 develop
        • 主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
      • bug修复分支 hotfix
        • 主要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。
      • 发布版本分支 release
        • 较大的版本上线前,会从开发分支中分出发布版本分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。
      • 功能分支 feature
        • 为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。 开发完成后会合并到开发分支。
    • 示例

十一、在Pycharm中使用Git

  • clone项目

    VCS--》Git--》clone--》Github--》填写远端地址

posted @ 2020-09-04 10:53  披着凉皮的狼z  阅读(148)  评论(0)    收藏  举报