git基本使用(一):git的基本概念

        Git 是一种分布式版本控制系统,最初由 Linus Torvalds 于 2005 年为 Linux 内核开发。它主要用于跟踪文件的更改,特别是在软件开发过程中,可以帮助团队成员协同工作。它在实际项目开发中,应用非常广泛,我们这一节来掌握它的基本使用,为以后工作做个铺垫。

一、git安装

二、git基本概念

       git可以实现代码的版本控制,有利于实际项目的开发,实际上项目的开发分为很多个阶段,每个阶段便构成了代码的不同的版本,它保存了代码的整个开发过程,分模块,分阶段,这样,团队开发的效率就会得到提升,当多个开发者一起工作时,每个人都在不同的地方修改代码。没有版本控制,大家会不断覆盖彼此的工作。版本控制系统就像一个超级助手,帮每个人记录他们的修改,并在需要时合并这些修改,确保每个人的工作都能被正确地整合。可以把它比作一个“时间机器”或者一个超级智能的“备忘录”,用来记录和管理文件(特别是代码)变化的历史。想象你在写一本书,每次写完一部分都能按下一个按钮,保存当前的状态。这样,你随时可以回到任何一个保存过的版本,无论你后来对书做了多少修改。Git 就是这样的时间机器,每次你提交(commit)代码,它就会记录当前的状态,让你可以随时回到以前的版本。

2.1 相关概念

  1. git        是软件 ,linux上就是命令、windows上就是应用程序(进行代码版本控制)
  2. github  网站(国外的托管代码平台,存储代码)
  3. gitee    阿里,码云(国内的代码托管平台)

2.2 代码版本控制的发展阶段

2.2.1 集中式代码管理

       集中式版本控制系统(CVCS)依赖于一个中央服务器来存储所有的版本文件。用户从中央服务器中检出代码的工作副本,进行修改后再提交回中央服务器。多个开发人员在本地开发代码,只有代码的最新版本,都将代码上传至服务器,服务器会存储代码的各个历史版本,如果服务器坏掉了,在服务器的各个历史版本都没有了,以后想要找之前的版本,再进行开发其他的项目,就没办法进行了。

特点:

  1. 中央仓库: 所有代码都存储在一个中央仓库中。
  2. 简单管理: 管理和设置相对简单,适合小团队和项目。
  3. 依赖网络: 操作需要与中央服务器的连接,离线工作不便。
  4. 冲突处理: 冲突处理通常在提交到中央服务器时进行。

优点:

  • 易于理解和管理。
  • 适合小型团队,简单的工作流程。
  • 所有的版本历史保存在一个地方,易于备份和恢复。

缺点:

  • 单点故障:中央服务器若出现故障,整个团队的开发工作可能会中断。
  • 不支持离线工作:离线时无法提交代码,也无法获取最新的代码更新。

常见工具:

  • Subversion (SVN)
  • Perforce

2.2.2 分布式代码管理

      分布式版本控制系统(DVCS)允许每个用户拥有代码库的完整副本。用户可以在自己的本地仓库中进行修改和提交,然后再与其他用户或中央仓库进行同步。每个开发人员都会有代码的各个历史版本,你写好了最新版本,提交到服务器上,别人要用,就会下载,下载下来会把各个历史版本的代码都下载下来,这样的好处就是,不怕服务器坏掉,坏掉之后,开发人员再上传就好,因为开发人员都有各个历史版本的代码。

特点:

  1. 本地仓库: 每个开发者都拥有整个代码库的本地副本,包括历史记录。
  2. 离线工作: 允许在离线状态下进行提交和其他版本控制操作。
  3. 分布式协作: 支持开发者之间更灵活的协作和分支管理。
  4. 冲突处理: 冲突处理在本地仓库与其他仓库同步时进行。

优点:

  • 无单点故障:即使中央仓库不可用,开发者也可以继续工作。
  • 支持离线工作:开发者可以在任何时间进行提交和其他操作。
  • 更好的性能:大部分操作都是本地完成的,速度更快。
  • 灵活的协作:支持更复杂的分支和合并策略,适合大型项目和分布式团队。

缺点:

  • 初始学习曲线较陡:需要学习如何处理本地和远程仓库的同步。
  • 存储需求大:每个开发者都需要存储整个代码库的副本。
  • 复杂管理:大规模协作时,可能需要更复杂的管理和工具支持。

常见工具:

  • Git
  • Mercurial

2.3 git属于分布式代码管理工具

三、 git的使用

3.1 四个工作区

         git本地有四个工作域:工作区(working directory), 暂存区(stage/index), 本地仓库(repository)。远程仓库(远程服务器上的git仓库(remote directory))。其关系如下:

  1. 工作区,就是你平时存放项目代码的地方
  2. 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  3. 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数 据。其中HEAD指向最新放入仓库的版本
  4.  远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

3.2 工作流程

git工作的一般流程:

  1. 在工作目录中添加,修改文件
  2. 将需要进行版本管理的文件放入暂存区
  3. 将暂存区的文件提交到git仓库

3.3  git基本命令

3.3.1   创建本地仓库,提交代码

注意事项: 第一次使用git命令提交代码之前,需要先设置用户名及邮箱,之后就不需要了:

   git status 查看状态, 如果工作区的代码和本地仓库最新版本的一致,就会显示无文件要提交,干净的工作区。给本地仓库提交一个版本,都会有一个唯一的编号,来标识。往暂存区可以add很多次,然后一次性提交很多到仓库。

经过以上几步,我们就可以将我们写的代码存放到本地的仓库中。我们进行简单总结:

  1. git init :             初始化仓库,将存放代码的目录变为一个可以通过git管理的仓库
  2. git add 代码文件名 : 将代码文件添加到暂存区
  3. git commit -m "版本描述信息" : 将代码从暂存区提交到本地仓库
  4. git log :            可以查看提交的历史记录

 

  1. git reflog 查看对仓库做的操作
  2. git status 查看仓库状态,有些操作必须保证工作区是干净的才可以做
  3. git reset --hard HEAD^^ 几个^就是回退几个版本
  4. git reset --hard 编号 回到哪个版本

3.3.2  其他常用操作

 1、比较版本差异:使用git diff HEAD命令,HEAD也可以省略默认就是与最近 一次比较。

        使用git diff HEAD 比较当前内容与最后一次提交的版本的差异,如下在main.c中添加了一行内容,显示添加的一行前面有‘+’号标识。如果内容相同则该命令不显示输出结果。HEAD也可以省略默认就是与最近 一次比较。 

2、撤销本次修改:使用git checkout filename 放弃对工作区代码的修改。

3、从暂存区撤销:使用git reset HEAD filename 从暂存区撤销

       注意:在暂存区中的文件可以撤销,但是加入到仓库中的文件就不能撤回了  ,必须要重新提交新的修改后的文件才可以。

至此,就将使用命令的方式来使用git介绍完毕,掌握最基本的操作,是我们以后工作的基础,下一节我们将介绍git分支的操作命令,感谢阅读,如果喜欢,点赞关注加收藏!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/764892.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【web3】分享一个web入门学习平台-HackQuest

前言 一直想进入web3行业,但是没有什么途径,偶然在电鸭平台看到HackQuest的共学营,发现真的不错,并且还接触到了黑客松这种形式。 链接地址:HackQuest 平台功能 学习路径:平台有完整的学习路径&#xff…

博途(TIA Portal)自动化工程软件下载安装,TIA Portal V18软件安装包获取

博途(TIA Portal)不仅仅是一款自动化工程软件,它更是西门子自动化领域的璀璨明珠。 它能够将西门子的所有自动化产品无缝集成在一起,无论是PLC、人机界面,还是伺服系统、马达、变频器、网络组件等,博途都能…

SMS群发信息API接口安全性有哪些保障方法?

SMS群发信息API接口支持哪些格式?如何使用API接口? SMS群发信息API接口被广泛应用于企业营销、客户服务、身份验证等多个领域。确保SMS群发信息API接口的安全性,已成为企业和开发者们必须重视的问题。AoKSend将探讨几种保障SMS群发信息API接…

容器技术-docker5

一、docker-compose 常用命令和指令 1. 概要 默认的模板文件是 docker-compose.yml,其中定义的每个服务可以通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。 注意如果使用 build 指令,在 Dockerfile 中设置…

前端技术(说明篇)

Introduction ##编写内容:1.前端概念梳理 2.前端技术种类 3.前端学习方式 ##编写人:贾雯爽 ##最后更新时间:2024/07/01 Overview 最近在广州粤嵌进行实习,项目名称是”基于Node实现多人聊天室“,主要内容是对前端界…

【RabbitMQ实战】邮件发送(直连交换机、手动ack)

一、实现思路 二、异常情况测试现象及解决 说明:本文涵盖了关于RabbitMQ很多方面的知识点, 如: 消息发送确认机制 、消费确认机制 、消息的重新投递 、消费幂等性, 二、实现思路 1.简略介绍163邮箱授权码的获取 2.编写发送邮件工具类 3.编写RabbitMQ配置文件 4.生产者发起调用…

8617 阶乘数字和

这是一个关于计算阶乘结果所有位上的数字之和的问题。我们可以通过以下步骤来解决这个问题: 1. 首先,我们需要一个函数来计算阶乘。由于n的范围可以达到50,阶乘的结果可能非常大,所以我们需要使用一个可以处理大整数的数据类型&a…

零成本、高效率:免费可视化工具的魅力所在

在如今这个数据驱动的时代,免费可视化工具越来越受到人们的欢迎。这些工具不仅降低了数据分析的门槛,还为用户提供了强大的功能和极高的灵活性,使得各行各业的人们都能够轻松地利用数据做出明智的决策。首先,免费可视化工具的零成…

软件鉴定测试的工作内容是什么?专业软件鉴定测试报告获取指南

软件鉴定测试是指对软件产品进行全面的检测和评估,以验证其是否符合规定的标准和要求。通过测试,能够发现软件中存在的问题和缺陷,并提供相应的改进建议。在不同的测试阶段,使用不同的测试方法和工具,包括功能测试、性…

智慧公厕系统改变了人们对服务区公厕的看法

在过去,服务区公厕常常给人留下脏乱差的印象,成为人们在长途旅行途中不愿停留的地方。然而,随着智慧科技的不断发展和应用,智慧公厕系统的出现改变了人们对服务区公厕的看法,为公共卫生设施的提升注入了新的活力。 一、…

链路全贯通,价值引领数据能力升级|爱分析报告

数据能力已经成为企业的核心竞争力。政策驱动数据产业发展加速,如2023年国家数据局成立;2024年,《“数据要素”三年行动计划(2024-2026年)》正式发布;并且 2024年起正式将数据资源视为资产纳入财务报表&…

一键变身!Cloud-Init让PVE镜像华丽转身,快来看看怎么做!

在虚拟化环境中,自动化配置虚拟机(VM)是提高效率的关键。Proxmox VE(PVE)是一款流行的开源虚拟化平台,而Cloud-Init是一种用于初始化云实例的工具。结合PVE和Cloud-Init,我们可以快速创建和配置…

红酒与露营:户外时光的好伴侣

在繁忙的都市生活中,人们总是渴望逃离喧嚣,寻找一处宁静的天地,与大自然亲密相拥。露营,作为一种返璞归真的户外生活方式,成为了许多人心中的理想选择。而在露营的浪漫时光里,一瓶雷盛红酒的陪伴&#xff0…

内网渗透学习-杀入内网

1、靶机上线cs 我们已经拿到了win7的shell,执行whoami,发现win7是administrator权限,且在域中 执行ipconfig发现了win7存在内网网段192.168.52.0/24 kali开启cs服务端 客户端启动cs 先在cs中创建一个监听器 接着用cs生成后门,记…

开源RAG个人知识库项目开发分析

前言 Hello,大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,这个LLM开发基础阶段已经进入尾声了,本文中我们不介绍更多的理论与知识点,而是通过的分析开源项目的解决方案来帮助各位开发者理…

Pytest--安装与入门

pytest是一个能够简化成测试系统构建、方便测试规模扩展的框架,它让测试变得更具表现力和可读性–模版代码不再是必需的。只需要几分钟的时间,就可以对你的应用开始一个简单的单元测试或者复杂的功能测试。 1. 安装pytest pip install -U pytest检查版…

计算机人说学校-北京交通大学-计算机方向

北京交通大学(Beijing Jiaotong University,简称BJTU)是一所位于中国首都北京的全国重点大学,隶属于中华人民共和国教育部,并由教育部、交通运输部、北京市人民政府和中国国家铁路集团有限公司共建。该校是国家“双一流…

为什么 [] == ![] 为 true?

🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 前言 面试官问我,[] ![] 的结果是啥,我:蒙一个true; 面试官:你是对的;我:内心非常高兴&a…

【PyTest】玩转HTML报告:修改、汉化和优化

前言 Pytest框架可以使用两种测试报告,其中一种就是使用pytest-html插件生成的测试报告,但是报告中有一些信息没有什么用途或者显示的不太好看,还有一些我们想要在报告中展示的信息却没有,最近又有人问我pytest-html生成的报告&a…

搜索型数据库的技术发展历程与趋势前瞻

概述 随着数字科技的飞速发展和信息量的爆炸性增长,搜索引擎已成为我们获取信息的首选途径之一,典型的代表厂商如 Google。然而,随着用户需求的不断演变,传统的搜索技术已经无法满足人们对信息的实时性、个性化和多样性的需求。 …