Linux探秘坊-------5.git

Linux探秘坊-------5.git

1.git介绍

1.版本控制器

为了能够更⽅便我们管理这些不同版本的⽂件,便有了版本控制器。所谓的版本控制器,就是能让你了解到⼀个⽂件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。⽬前最主流的版本控制器就是 GitGit可以控制电脑上所有格式的⽂件,例如doc、excel、dwg、dgn、rvt等等。对于我们开发⼈员来说,Git最重要的就是可以帮助我们管理软件开发项⽬中的源代码⽂件!

2.git简史

同⽣活中的许多伟⼤事物⼀样,Git诞⽣于⼀个极富纷争⼤举创新的年代。
Linux内核开源项⽬有着为数众多的参与者。绝⼤多数的Linux内核维护⼯作都花在了提交补丁和保存归档的繁琐事务上(1991−2002年间)。到2002年,整个项⽬组开始启⽤⼀个专有的分布式版本控制系统BitKeeper来管理和维护代码。到了2005年,开发BitKeeper的商业公司同Linux内核开源社区的合作关系结束,他们收回了Linux内核社区免费使⽤BitKeeper的权⼒。这就迫使Linux开源社区(特别是Linux的缔造者LinusTorvalds)基于使⽤BitKeeper时的经验教训,开发出⾃⼰的版本系统。

⾃诞⽣于2005年以来,Git⽇臻成熟完善,在⾼度易⽤的同时,仍然保留着初期设定的⽬标。它的速度⻜快,极其适合管理⼤项⽬,有着令⼈难以置信的⾮线性分⽀管理系统。

2.linux下拉取gitee远端仓库(git三板斧)

gitee的官方网址

1.新建一个仓库

在这里插入图片描述


仓库明细如下:

在这里插入图片描述


可以看到有两个初始的.md文件(注意)

2.获取gitee仓库地址

在这里插入图片描述


在这里插入图片描述


这个就是我们需要的仓库地址

3.拉取gitee远端仓库

在这里插入图片描述


在这里插入图片描述
  • 使用 git clone +仓库网址 就能把仓库内容拉取出来
  • 可见两个md文件与仓库中的一致

3.在拉下来的仓库里新增内容并提交到远程仓库

在这里插入图片描述


这里使用了其他大佬的图。

在这里插入图片描述


这里我们在克隆的目录下新建一个code.c我们可以使用vim在文件里写入一些代码。

1.git add code.c

在这里插入图片描述


请问这里code.c有被直接提交到本地仓库吗?

NO!

当前code.c只是被存在了暂存区方便收回,避免提交错误的代码到远程仓库里

在这里插入图片描述

2.git status(查看当前情况)


那么,我们有办法传到本地仓库吗?

有的,兄弟有的:

3.git commit -m “新增一个文件”(在git add的基础上)

在这里插入图片描述

这个时候会报错,因为我们是第一次使用git,需要给 邮箱和名字

在这里插入图片描述


这里大佬们可以填自己的

在这里插入图片描述


再次使用就成功啦。

4.git log (相当于日志)

在这里插入图片描述


可以用来查看日志,检查错误

5.git push

在这里插入图片描述


第一次使用需要将红框中的内容任选其一输入到终端
然后再输入git push

在这里插入图片描述

输入密码和账户即可

在这里插入图片描述


远程仓库也完成了传输啦。

4.git指令扩充

  • 删除仓库中的文件 —— git rm 文件名
  • 查看本地和远端之间同步的状态 —— git status
  • 删除本地仓库 ——rm .git
在这里插入图片描述


code.c文件已经被删除

在这里插入图片描述


使用git status也显示code.c被删除

接下来我们把下载的本地仓库也删除:

在这里插入图片描述


这里再次使用git status 发现没法查看,因为.git已经被删除。

在这里插入图片描述
  • 我们可以看到有个.gitignore文件,这个文件储存着 所有会被忽视的文件后缀,即如果在linux/windows下传了上述后缀的文件,仓库里是不会显示这些文件的

Read more

【C++笔记】模板初阶

【C++笔记】模板初阶

前言:         C++模板是C++中实现泛型编程的核心工具,允许程序员编写与类型无关的代码,从而提高代码的复用性和灵活性。模板在编译时进行实例化,根据实际使用的类型生成具体的代码,因此不会带来运行时开销。          一、模板基础          1.1 为什么需要模板?          在编写函数或类时,如果希望它们能处理多种数据类型(如int、double、string),传统方法是使用函数重载,但这样会产生大量重复代码或失去类型信息。 模板允许将类型作为参数,编译器根据调用时传入的具体类型生成对应的代码。          场景:需要编写一个求两个数最大值的函数,支持 int、double 和 string(按字典序)。          ①传统方法:函数重载 #include <iostream> #include <string> using namespace std; // 为 int 重载 int max(int

By Ne0inhk
【C++】右值引用与移动语义详解:如何利用万能引用实现完美转发

【C++】右值引用与移动语义详解:如何利用万能引用实现完美转发

C++语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C++相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C++内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriority Queue与仿函数模板进阶-模板特化面向对象三大特性-继承机制面向对象三大特性-多态机制STL 树形结构容器二叉搜索树AVL树红黑树红黑树封装map/set哈希-开篇闭散列-模拟实现哈希哈希桶-模拟实现哈希哈希表封装 unordered_map 和 unordered_setC++11 新特性:序章 大家好,我是店小二。本篇文章将深入讲解C++11的新增特性,重点围绕右值引用与移动语义展开,并详细讨论如何利用万能引用实现完美转发。如果在阅读过程中有疑问或不同的见解,欢迎随时私信我进行进一步交流 🌈个人主页:是店小二呀 🌈C语言专栏:C语言 🌈C++专栏: C++ 🌈初阶数据结构专栏: 初阶数据结构 🌈高阶数据结构专栏: 高阶数据结构 🌈Linux

By Ne0inhk
C++测试与调试:确保代码质量与稳定性

C++测试与调试:确保代码质量与稳定性

C++测试与调试:确保代码质量与稳定性 一、学习目标与重点 本章将深入探讨C++测试与调试的核心知识,帮助你确保代码的质量与稳定性。通过学习,你将能够: 1. 理解测试与调试的基本概念,掌握测试方法和工具 2. 学会使用单元测试框架,如Google Test和Catch2 3. 理解集成测试的重要性,确保系统的功能正确性 4. 学会使用调试工具,如GDB和Visual Studio调试器 5. 培养测试与调试思维,设计高质量的代码 二、测试的基本概念 2.1 测试的分类 测试可以分为以下几类: * 单元测试:测试单个函数或类的功能 * 集成测试:测试多个模块的集成功能 * 系统测试:测试整个系统的功能 * 验收测试:测试系统是否满足用户需求 * 性能测试:测试系统的性能指标 2.2 测试原则 测试应该遵循以下原则: * 测试应该尽可能早地进行 * 测试应该覆盖所有可能的场景 * 测试应该是自动化的

By Ne0inhk