【Git版本控制系统】:起步

news2024/11/15 11:17:53

目录

前言

版本控制

集中式与分布式的区别

Windows安装Git

核心

文件状态

工作区域

基本工作流程

配置用户信息

获取帮助 

在线资源


前言

本篇文件的环境是Windows环境下实现。

在日常工作中git少不了,所以编写本篇文章介绍Git基础,专栏会不定期更新一些Git相关内容,便于日后工作与学习。

虽然git命令很多,但是常用的只有十多个。

版本控制

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

  • 可以将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态
  • 可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷
  • 就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微.......

集中式与分布式的区别

集中式(SVN、CSV):

  • 每次在写代码时都需要从服务器中拉取一份下来,并且如果服务器丢失了,那么所有的就都丢失了,你本机客户端仅保存当前的版本信息,换句话说,集中式就是把代码放在一个服务器上集中管理,你的所有回滚等操作都需要服务器的支持;
  • 都有一个主版本号,所有的版本迭代都以这个版本号为主。
来自progit.pdf

分布式(Git):

  • 每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到的情况,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你可以把自己的代码新建一份仓库分享给其它人;
  • git没有固定的版本号,但是有一个由哈希算法算出的id,用来回滚用的;
  • 有一个master仓库,这个仓库是一切分支仓库的主仓库,我们可以推送提交到master并合并到主仓库上,主仓库的版本号会迭代一次,我们客户端上的git版本号无论迭代多少次,都跟master无关,只有合并时,master才会迭代一次。
来自progit.pdf

Windows安装Git

        官方版本可以在 Git 官方网站下载。 打开 Git - Downloading Package,下载会自动开始。 

核心

使用git时的核心特征:

  • 直接记录快照信息
  • 几乎所有操作都在本地执行
  • 保证完整性
  • 一般只添加数据

文件状态

使用git时,文件基本处于以下几个状态:

  • 已修改modified

  • 已暂存staged

  • 已提交committed

来自progit.pdf,文件状态的变化周期

工作区域

使用git时,工作区域基本处于以下几个区域:

  • 工作目录

  • 暂存区

  • Git本地仓库

基本工作流程

1.修改文件 2.暂存文件(add) 3.提交更新(commit) 4.推送至远程仓库(push)

图片来自网络

配置用户信息

        安装完 Git 之后,要做的第一件事就是设置你的用户名邮件地址,每一次提交都会使用这些信息

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

注意:如果使用了 --global 选项,那么该命令只需要运行一次,后续所有操作都会用这些信息。

检查配置信息:

$ git config --list

获取帮助 

        如果想获取git config 命令的手册,执行

$ git help config

        如果不需要全面的手册,可以快速参考,使用-h选项获取简明的帮助

$ git config -h

=========================================================================

在线资源

http://www.git-tower.com/learn

Git官网:https://git-scm.com/

简明指南:https://rogerdudler.github.io/git-guide/index.zh.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

武汉星起航:创新驱动,共赢未来,引领跨境电商新潮流

在跨境电商这个充满挑战与机遇的领域,武汉星起航凭借其创新思维和共赢理念,正引领着行业发展的新潮流。 武汉星起航深知创新是企业在激烈竞争中立于不败之地的关键。公司始终关注市场动态,紧跟行业趋势,不断探索新的商业模式和运…

玩转 Spring 状态机:更优雅的实现订单状态流转

说起 Spring 状态机,大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢?没错,Spring 状态机就是状态模式的一种实现,在介绍 Spring 状态机之前,让我们来看看设计模式中的状态模式。 1. 状态模式 状态模式…

leetcode刷题(javaScript)——堆相关场景题总结

堆是什么?堆都能用树表示,并且一般树的实现都是利用链表。平时使用的最多的是二叉堆,它可以用完全二叉树表示,二叉堆易于存储,并且便于索引。在堆的实现时注意:因为是数组,所以父子节点的关系就…

学习SSM的记录(六)-- Spring MVC

目录 Spring MVC 简介和体验 Spring MVC原理简单解析 Spring MVC涉及的组件 Spring MVC 快速体验 Spring MVC 接收数据 访问路径设置 接收参数(重点) param和json参数比较 param参数接收 路径参数接收 json参数接收 EnableWebMvc注解 接收C…

探秘知乎的排名算法:知乎撰写高质量内容的秘诀

知乎作为一个知识问答社区,用户众多、内容繁杂,那么究竟是什么样的原则决定了知乎上的排名呢?腾轩科技传媒探讨知乎排名的规则,并分享如何撰写高质量的文章。 知乎排名的算法 在知乎这个巨大的社交平台上,任何一个用户…

DDL - 建立数据库,建表代码版(Way 2)

一、DB操作 show databases; create database DBOFRYX; drop database DBOFRYX; use DBOFRYX; 二、表操作(表和表结构、字段是A、B两姐妹) (1) use DBOFRYX; show tables; (2) create table TABOFRYX( name varchar(50) comment "姓名"…

ChatGPT提问技巧——对话提示

ChatGPT提问技巧——对话提示 对话提示是一种允许模型生成模拟两个或多个实体之间对话的文本的技术。 通过向模型提供上下文和一组角色或实体,以及他们的角色和背景,并要求模型生成他们之间的对话。 因此,应向模型提供一个上下文和一组角色…

大语言模型智能体简介

大语言模型(LLM)智能体,是一种利用大语言模型进行复杂任务执行的应用。这种智能体通过结合大语言模型与关键模块,如规划和记忆,来执行任务。构建这类智能体时,LLM充当着控制中心或“大脑”的角色&#xff0…

浏览器设置字体1px时,不能正常显示

问题如下,某版本浏览器,字体很小时,无法正常显示,解决方案有三种。 解决方案1 解决方案2 解决方案3

WebServer -- 面试题(下)

👂 夏风 - Gifty - 单曲 - 网易云音乐 目录 🌼前言 🎂面试题(下) 4)HTTP报文解析 为什么要用状态机 状态转移图画一下 https 协议为什么安全 https 的 ssl 连接过程 GET 和 POST 的区别 5)数据库注册登录 登…

十五、软考-系统架构设计师笔记-面向服务架构设计理论与实践

1、SOA相关概念 面向服务的架构(SOA)的定义 SOA 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构…

[RoarCTF 2019]Easy Java -不会编程的崽

考察一下大家对java-web知识点的掌握 熟悉的登录界面让你想起了某位故人没有,哈哈,但是并非sql注入。一番基础尝试无果后,看看help吧 这个url让你想起某位故人了吗?对文件下载。但是似乎没有响应。改成post请求即可。 我看见pk了&…

unity3d Animal Controller的Animal组件中General基础部分理解

控制器介绍 动物脚本负责控制动物的所有运动逻辑.它管理所有的动画师和刚体参数,以及所有的状态和模式,动物可以做。 动物控制器 是一个动画框架控制器,根动或到位,为任何生物或人形。它利用刚体与物理世界的互动和动画师的玩动画。 States States 是不互相重叠的动画。例如…

canvas绘制圆形进度条

canvas绘制圆形进度条 用canvas绘制了一个圆形进度条&#xff0c;记录一下&#xff1a; 效果如下&#xff1a; 感觉效果还行&#xff0c;不过有待优化 代码如下&#xff1a; 我是用Vue写的 组件的代码&#xff1a; progressCanvas.vue <template><div><can…

Linux VM虚拟环境 设置静态IP

目录 查看自己的网卡配置说明重启网卡实例测试配置情况测试网络 查看自己的网卡 ip a配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens32配置说明 [rootlinux-server ~]# cd /etc/sysconfig/network-scripts/ #网卡配置文件存放路径 [rootlinux-server network-scri…

C/C++中{}的用法总结(全)

C基础专栏&#xff1a;http://t.csdnimg.cn/UjhPR 目录 1.定义初始化列表&#xff08;Initializer List&#xff09; 2.类成员初始化列表 3.无默认构造函数的类的默认初始化&#xff08;C11 及以后版本&#xff09; 4.初始化器列表构造函数&#xff08;C11 及以后版本&…

js判断对象是否有某个属性

前端判断后端接口是否返回某个字段的时候 <script>var obj { name: "John", age: 30 };console.log(obj.hasOwnProperty("name")); // 输出 trueconsole.log(obj.hasOwnProperty("email")); // 输出 falselet obj11 { name: "Joh…

一文搞懂多模态:BeiT-3之前的14个多模态+4个周边原理解读

在人工智能的世界里&#xff0c;多模态学习不断地展现出其重要性。这个领域的迅速发展不仅促进了不同类型数据之间的深度融合&#xff0c;还为机器理解世界提供了更加丰富和细腻的视角。随着科技的不断演进&#xff0c;人工智能模型已经开始渐渐具备处理和理解从文本、图像&…

MySQL主从复制的原理

MySQL 主从复制是一种数据复制技术&#xff0c;用于在多个数据库服务器之间的数据同步。在主从复制架构中&#xff0c;一个服务器被设置为主服务器&#xff0c;充当数据源&#xff0c;其他服务器被设置为从服务器&#xff0c;用来复制主服务器的数据。 1.主从复制优点 主从复…

Unity Timeline学习笔记(3) - SignalTrack信号轨道和自定义带参数的Marker信号和轨道

信号轨道&#xff0c;顾名思义就是运行到某处发送一个信号。 普通用法 普通用法就是没有任何封装的&#xff0c;个人感觉特别难用&#xff0c;但是有必要理解一下工作原理。 添加信号 我们添加一个信号资源 生成后可以看到资源文件&#xff0c;这个是可以拖到SignalTrack上…