阿凡达

并分享Git实用知识供网络工程师使用, 并分享我多年学到的一些技巧和技巧,

为什么我应该知道Git网络工程师

版本控制系统,主要是Git,在软件开发领域外越来越普遍DevOps、网络自动化和基础设施在过去十年中作为代码实践的增加使不仅熟悉Git而且精通Git变得更加重要

团队进化基础设施领域编解码 理解使用Git

Git是什么

git系统版本控制版本控制系统记录文件随时间变化,使你有能力回溯先前的修订并查看变化历史表面看似简单然而,当开始与其他人共事同组文件时,事情会更加复杂化

Git被称为分布式VCS位居主体Linux内核开发团队使用Git.多数使用集中定位如GitHub、GitLab或内部Git服务器为典型,特别是因为Github和GitLab等集中系统相关功能更多

短历史git

Linus tovalds于2005年创建Git替换Linux内核开发商使用的商业VCSLinus tovalds也是Linux内核的创建者,Git设计为:

  • 快速化
  • 简单设计
  • 支持并行开发
  • 分布式
  • 高效处理大型项目

Git由开源开发团队维护,

如何Git工作

不同于版本控制系统Git使用快照法跟踪修改三角洲基础方法论

每当你投入Git时,它基本取文件变换的快照,同时简单连接不变文件到前一快照,高效存储文件历史视之为一连串快照,只有修改文件在快照中引用,不变文件在前一快照中引用

git运算大都局部化,意指它不需与远程或中心存储器交互有特定命令与远程存储器交互作用,但我们将在下一篇文章中覆盖

吉特市所有事物都打包这不仅通过允许Git检测腐败维护存储器完整性,而且它被用作Git中大多数对象的引用,例如承载标签等Git使用SHA-1hash,表示为xx字符串40字和a-f字符之和和Git一起工作时 会常看到这些类型的hashes

并清晰化使用Git)Git三大状态文件:

  • 修改后:文件变换,但尚未承诺
  • 阶梯化 :文件标记出现后
  • 执行方式 :文件安全抓取

等你看到它作用后,它会更通情达理

Git局部启动

理解Git基本运算很重要最佳学习方式之一是创建本地存储器本地存库即本地存未配置远程存储器位置,我们将不与远程存储器交互

别担心远程存储器下集

基础Git命令

与命令行版本Git合作多数,如果不是全部图形用户界面Git概念相同或甚至指操作与命令行操作相同理解命令行以后使用图形Git工具时会有所帮助

配置 *git配置

上头git配置命令允许设置并获取配置选项或系统范围、用户全局性或存储库级

在Git真正能做任何事情前,我们需要搭建用户. name用户.email.远程存储器操作时使用这些工具,而远程存储器操作时将变得更加重要。典型地说,这些设置全局性,但也可以设置库级配置选项置值超过集全局配置值

搭建你用户. name用户.email面向你自己

上例中,我设置用户. name值对东尼罗马用户.email值对tonyroman@example.com.设置对象名和邮箱地址

另一种配置选项值得设置以适应命名规范上的某些社区变化主控取而代之师傅.

让我们设置init.defaultBranch主控当我们创建 Git仓库时 默认分支正确命名主控:

创建新仓库git init

上头git init命令用在当前目录或目录名中创建 Git仓库

创建Git仓库命名git序列:

创建新仓库git init

查看文件状态*git状态

上头git状态命令可能是我最常用的Git命令命令为您提供存储器和文件状态因为我相信做是学习的最好方式git状态并用其余Git命令

改成git序列目录运行git状态:

通知方式git状态命令告诉我们分支主尚不承接.保持简单化,当我们讨论与他人合作时,我们将覆盖分支

默认git状态极有帮助输出典型输出帮助提示和关联命令引导你沿途举个例子有帮助无事可做(创建/复制文件并使用git添加音轨)输出端它甚至表示你尚未对存储库作出任何承诺

添加文件提交git添加

好,现在我们有了空Git仓库 开始追踪文件开源软件中相当常见README.m文本文件写入标记下降,让我们创建

现在让我们检查新文件状态

注意新文件如何显示未跟踪文件 :.基本说来,我们创建新文件,但我们没有添加Git跟踪,

现在让我们添加新文件,所以它正在跟踪

提交文件*git投送

文件添加并被Git跟踪,但我们仍需要承诺或记录修改开始检查状态变换

调用时git投送命令通常会打开您的默认编辑器脉冲创建委托消息如你所见 Git用帮助文本填充委托消息,但注意帮助文本行从何开始##字符化有必要从技术上注意帮助文本评析,以便保存委托消息时忽略批注行

我总是建议人们把委托消息想成 简短描述正在对存储库执行的修改

我也想把这个信息 传递到我未来是什么意思?说说看瞬间可能理解内存信息,但后连数年后中,你可能记不起来上下文或写信息时你在想什么简洁描述性不过分词性写好信息还帮助当前或未来可能协作的其他人

修改现有文件并审查修改gitdiff

现时我们添加文件并寄存存储器,这只是第一步现在让我们再加几行README.m修改后检查状态

再一次git状态命令告诉我们典型动作在本案中,我们可以使用修改文件git添加或,因为文件已被跟踪,我们可以使用git承诺-a命令添加修改后履带文件想想看-a快速快捷键:否则你不得不使用git添加并发git投送命令执行相同的工作git承诺-a会做

变换README.m,我们知道这一点修改后状态文件我们知道我们改变了什么-我们添加新行和欢迎信息现在让我们用 The审查修改gitdiff命令

上头gitdiff输出像大差公共事业输出第一,我们有头文件信息,但Git补充额外信息像索引化线程中其余部分相当标准化:文件名问题,行数修改,然后修改表示+表示加值和-清除以我们为例,我们加了两行通过在两行前查找+签名,我们可以确认我们加法

处理多变、加载和/或删除文件时gitdiff命令输出可长长if you want just审查目录内单文件gitdiff简单向命令尾端添加文件或目录

TIP:上头gitdiff命令显示文件Git知道对目前非级化修改的差文件编程后gitdiff命令不显示Git快照文件与 staged文件之间的差异,除非使用gitdiff-cashed命令

现在让我们承诺修改README.m文件.使用单命令并选项git添加git投送不打开编辑器使用git赋值-a-m ... 命令

移动重命名文件gitmv

时不时你可能需要移动或重命名文件库为此,我们使用gitmv命令先用新命名错误文件设置场景

创建文件后添加并寄存存储器

如你所见,我们创建文件并检查Git状态现在无法使用快捷键添加修改文件,因为这些文件是新建文件我们使用git添加命令改变状态未跟踪阶段化免得置身事外最后,我们承诺使用命令行选项执行消息

经审查后,我们发现我们并不想使用复数交换路由设备文件让他们转动修复它

你可以看到当我们使用gitmv命令,它立即分步移动动作已经上演,我们只需承诺更新

删除文件 *gitrm

最后,我们需要从存储库删除文件为此,我们使用gitrm命令

继续移位设备/路由文件并实现修改

再一次像gitmv命令,gitrm命令自动级清除因为它已经编程化后,我们可以对存储器实施修改git投送.

ViewCous日志git日志

现在,我们已经承诺存储库,让我们审查我们所做的工作

上头git日志命令允许您查看列表向存储器表示的承诺或快照

专注第一块git日志命令输出

d24c49f8712cc7c05
           
            日期:TueJul121143512022-0400清除路由器设备文件
           

第一行启动承载并继同行后承载sHA1校验和Git几乎全部引用SHA1或a短消息版本它尾行文本表示HEAD,或最新承诺主控.分支我们一直在缺省分支工作主控内存库分支和工作方式将在下篇文章中覆盖上头写者日期显示相当不言自明

终于显示委托消息

显示显示事端居中市git显示

上头git显示命令并发git日志命令对审查存储库所完成的工作有用git显示命令显示各类对象作为文档汇总将使用它查看gitdiff存储库内特定委托

先放git日志并拷贝SHA1从顶部第三承接校验

if you're follow at home, SHA1校验和可能并不一样所以,你需要拷贝它 从git日志输出.复制SHA1校验和

从输出中可以看到git显示命令看起来像git日志gitdiff并发输出实现以此案例为例,我们添加了两个文件上头gitdiff输出部分git显示告诉我们新文件并发显示文件内容新建文件表示gitdiff输出/dev/null基本表示,计算机怪客语言中,文件以前不存在或曾经不存在空号.

上头git显示命令对查看Git存储器中多事物大有帮助,但主用例例通常是检查在委托中完成的工作

git状态生命周期

因为我们没有真正谈论文件可能存在的差分状态,我认为现在就覆盖它很重要。

基本有四种状态

  • 未跟踪
  • 修改后
  • 阶段化
  • 无修改

添加新文件时,文件初始化未跟踪.我们使用git添加命令新文件状态修改阶段化.

编辑存储库中已有文件修改后.修改后文件需要使用git添加命令更改状态阶段化.

阶段化状态表示git添加,gitrmgitmv命令立即修改文件阶段化因为没有修改后状态操作文件必须是阶段化置信存储器前修改后文件需要添加到使用git添加命令

从图上可以看到,有从删除箭头无修改未跟踪.默认时使用gitrm命令删除文件后台文件移位无修改未跟踪后删除gitrm命令跟踪此状态路径后最终删除

终于无修改曾为状态阶段化文件已寄存存储器

引用 :https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository

摘要

完成所有覆盖后,你现在应该能够创建本地Git存储器,不仅跟踪编码项目,还跟踪配置文件、注解-几乎什么都行!视Git为工具跟踪记录文件基础项目随时间变化

多学习

下一步是什么

现在,我们已经覆盖Git基础网络工程师, 我们将移动到现实世界 有效工作团队不仅我将覆盖远程存储库技术方面,包括分支化、合并和重定位,我们还将覆盖避免常见问题和陷阱的战略

留播下半段Git网络工程师数列快来

Cisco学习认证

微博|脸书|LinkedIn|instagram系统



作者类

阿凡达

东尼罗马

技术倡导者

学习认证