• python面试题——版本管理工具GIT(一)


    在这里插入图片描述

    一、Git概念

    1、Git的概念

    Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。

    2、什么是版本控制?

    版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

    3、Git官网:

    https://git-scm.com/

    4、为什么要使用版本控制?

    有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。
    就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。

    5、版本控制系统的分类:

    集中化的版本控制系统:

    在这里插入图片描述

    事分两面,有好有坏。这么做最显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。如果数据丢失,不能回滚代码。

    分布式的版本控制系统

    在这里插入图片描述
    分布式的版本控制系统在管理项目时存放的不是项目版本与版本之间的差异.它存的是索引(所需磁盘空间很少所以每个客户端都可以放下整个项目的历史记录)
    更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。这样,你就可以在同一个项目中分别和不同工作小组的人相互协作。

    二、Git结构

    在这里插入图片描述

    工作区:项目或者目录(代码的开发)

    在这里插入图片描述

    本地区:自己的磁盘空间存储,不能和其他人进行交互

    在工作区执行git init命令,就初始化了一个本地库
    在这里插入图片描述

    本地库文件,配置
    在这里插入图片描述

    远程库:服务器存储

    三、代码托管中心_本地库和远程库的交互方式

    1、代码托管中心是干嘛的呢?

    我们已经有了本地库,本地库可以帮我们进行版本控制,为什么还需要代码托管中心呢?

    它的任务是帮我们维护远程库,
    在这里插入图片描述

    2、托管中心种类:

    局域网环境下: 可以搭建 GitLab服务器作为代码托管中心,GitLab可以自己去搭建

    外网环境下:可以由GitHub或者Gitee作为代码托管中心,GitHub或者Gitee是现成的托管中心,不用自己去搭建

    四、初始化本地仓库

    git init

    在这里插入图片描述
    注意事项:.git目录下的本地库相关的子目录和子文件不要删除,不要胡乱修改。

    创建用户名和邮箱

    在这里插入图片描述

    五、Git常用命令

    提交到暂存区:git add file

    在这里插入图片描述

    将暂存区的内容提交到本地库:git commit -m ‘备注’

    在这里插入图片描述

    (1)不放在本地仓库中的文件,git是不进行管理
    (2)即使放在本地仓库的文件,git也不管理,必须通过add,commit命令操作才可以将内容提交到本地库。

    status命令

    git status看的是工作区和暂存区的状态

    a、创建一个文件,然后查看状态:

    在这里插入图片描述

    b、然后将test1.py通过git add命令提交至:暂存区:

    在这里插入图片描述

    c、再将test1.py通过git commit命令提交至:工作区:

    在这里插入图片描述

    d、git status查看状态,工作区没有可以提交的文件了

    在这里插入图片描述

    log命令

    git log 可以让我们查看提交的,显示从最近到最远的日志
    在这里插入图片描述

    eg:a、此时对test.py文件进行修改

    注意:修改完成后,是对工作区的文件进行了修改,并没有提到本地仓库
    在这里插入图片描述

    b、再次提交

    在这里插入图片描述

    c、查看日志

    在这里插入图片描述

    d、查看提交日志(查看更简洁)

    在这里插入图片描述

    e、git reflog:查看日志更详细

    在这里插入图片描述

    reset命令

    reset命令:前进或者后退历史版本

    复制:在终端中选中就是复制了

    粘贴:右键:paste

    a、将工作区的test1.py文件删除

    在这里插入图片描述

    b、本地库还存在

    在这里插入图片描述

    c、如果本地库也要删除,需要再次执行add、commit命令同步到本地库

    在这里插入图片描述

    d、查看状态:没有可以提交的了

    在这里插入图片描述

    e、此时后悔了,想把删除的文件复原

    在这里插入图片描述

    diff命令

    对test.py文件内容进行删除操作,此时工作区和本地仓库中的文件内容不一致

    在这里插入图片描述

    默认和最新提交的版本进行比较

    在这里插入图片描述
    也可以用git diff head 版本号
    在这里插入图片描述

    如果想和旧的版本进行比较

    在这里插入图片描述

    总结:git diff —>比较工作区中和暂存区中 所有文件的差异

    六、分支

    1、什么是分支

    a、什么是分支:

    在版本控制过程中,使用多条线同时推进多个任务。这里面说的多条线,就是多个分支。

    通过一张图展示分支:

    在这里插入图片描述

    b、分支的好处:

    同时多个分支可以并行开发,互相不耽误,互相不影响,提高开发效率

    如果有一个分支功能开发失败,直接删除这个分支就可以了,不会对其他分支产生任何影响。

    2、操作分支

    查看:git branch -v

    创建:git branch dev

    在这里插入图片描述

    创建:git branch dev

    在这里插入图片描述
    注意:创建的分支和主分支的代码、日志完全一致

    切换分支:git checkout dev1

    在这里插入图片描述

    a、创建1个文件demo1.py文件

    在这里插入图片描述

    b、此时dev1分支肯定有demo1.py文件,主分支master没有demo1.py文件

    在这里插入图片描述

    3、冲突问题,如何解决冲突题(重要)

    a、在主分支master中将文件test.py新增内容

    在这里插入图片描述

    b、提交到本地库

    在这里插入图片描述

    c、在dev分支上的test.py文件中新增内容

    在这里插入图片描述

    d、提交到本地库

    在这里插入图片描述

    注意:

    将dev分支合并到主分支master上,需要先切换到主分支上
    也就是说也master为主,将对方的分支合并到master分支上

    e、执行git merge dev1 合并分支冲突了

    在这里插入图片描述

    此时处于合并状态,需要修复冲突,其他事情做不了

    f、举例:当我创建demo2.py文件,编辑内容提交到本地库时,不允许操作

    在这里插入图片描述

    解决冲突问题:

    冲突内容
    在这里插入图片描述
    解决完成,按照项目需求来
    在这里插入图片描述

    在这里插入图片描述

    注意:解决冲突的提交和普通提交不一样,commit命令不能加test.py

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    C# .Net中鼠标Cursor的公用辅助类
    Scala教程
    docker命令大全
    Python——贪吃蛇
    零数科技携手云南能投智慧打造全国最大区块链实体项目
    25、ESP8266的AP模式跟Station模式代码实现
    数据结构之索引查找(分块查找)
    JavaWeb-解析Http协议
    我们来浅谈代码语言的魅力
    第一个mybatis程序,实现增删改查CRUD
  • 原文地址:https://blog.csdn.net/YZL40514131/article/details/126026936