系统运维(Git篇)

news2024/9/28 9:27:40

Git基础

Git
Git是一种分布式版本控制系统,可以帮助我们管理代码的版本和变更。通过学习Git,我们可以更好地理解版本控制的原理和应用,同时也可以掌握Git的使用和管理技巧。
Docker
Docker是一种容器化平台,可以将应用程序及其依赖项打包到一个可移植的容器中,以便在任何地方运行。Docker的出现,使得应用程序的部署和管理变得更加简单和高效。通过学习Docker,我们可以更好地理解容器化技术的原理和应用,同时也可以掌握Docker的使用和管理技巧。
Kubernetes
Kubernetes是一种容器编排工具,可以自动化地部署、扩展和管理容器化应用程序。Kubernetes的出现,使得容器化应用程序的管理变得更加简单和高效。通过学习Kubernetes,我们可以更好地理解容器编排技术的原理和应用,同时也可以掌握Kubernetes的使用和管理技巧。
Linux
Linux是一种开源的操作系统,广泛应用于服务器和嵌入式设备等领域。通过学习Linux,我们可以更好地理解操作系统的原理和应用,同时也可以掌握Linux的使用和管理技巧。
Python
Python是一种高级编程语言,具有简单易学、功能强大、可扩展性好等特点。通过学习Python,我们可以更好地理解编程语言的原理和应用,同时也可以掌握Python的使用和开发技巧。

Git的由来

img

​ Git是由Linus Torvalds创建的一个分布式版本控制系统,最初是为管理Linux内核开发而创建。当时,Linux内核使用BitKeeper作为版本控制工具,但是BitKeeper提出了新的许可协议,在社区中引起了争议,这导致了Linus Torvalds的不满和反感。

​ 因此,Linus决定创建自己的版本控制工具,他决定创建一个简单、高效、分布式的工具。他决定以自己的名字来命名它,最终成为了Git。

​ Git于2005年发布,并且迅速获得了广泛的认可和使用。现在,Git已经成为了全球范围内的一个重要的版本控制系统,被广泛应用于个人和企业软件开发中。

​ 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。它通常被用于跟踪软件开发中的源代码变化,但它也可以用于其他类型的文件,如文本文件、配置文件等。版本控制系统可以让多个人协同工作,同时对同一个文件进行编辑,并且可以方便地回滚到之前的版本,以避免误操作等问题。其中最常用的版本控制系统之一是 Git。

Git灵魂5问?

  1. 什么是Git? 它具有哪些特性?
    Git是源代码管理工具,用于追踪代码的修改和版本控制。 Git的特性包括:速度快、可分布式、支持非线性开发、保留历史记录并允许回退、支持多个并行开发分支等。

  2. Git中什么是HEAD?
    HEAD是指向当前本地分支中最新提交的指针。它是指向当前检出的分支的别名,并且是Git中的重要标记。在使用reset和checkout命令等操作时常常需要用到HEAD。

  3. 如何创建分支,并将分支与主分支合并?
    要在Git中创建分支,可以使用git branch命令并指定新分支的名称,例如:$ git branch mynewbranch。然后,可以使用Git checkout命令将工作目录切换到新分支,例如:$ git checkout mynewbranch。要将分支与主分支合并,可以使用git merge命令,并指定要合并的分支名称,例如:$ git merge mynewbranch

  4. 如何撤销上一次提交?
    可以使用git reset命令来撤消上一次提交,并将代码回滚到上一个提交的状态。例如:$ git reset HEAD~1。HEAD~1表示回滚到上一个提交,如果要回滚到更早的提交可以将数字1替换为所需提交的数量。

  5. Git中如何解决代码合并冲突?
    当合并分支时,如果两个分支都修改了同一行代码,则会发生代码合并冲突。Git会在合并时提示冲突,此时需要手动修改代码并解决冲突。可以使用git mergetool命令调用合并工具来解决冲突,或者使用编辑器进行手动编辑。编辑完成后,可以使用git add命令将修改后的文件添加到暂存区,然后使用git commit命令提交修改并完成合并。

基础知识

​ Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

img

  • Workspace:工作区,就是你平时存放项目代码的地方

  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

  1. Git的三个阶段

在使用Git进行版本控制时,每个文件都处于三个阶段中的一个:

  • 已修改:表示已经对文件进行了修改,但还没有提交到版本库中;
  • 已暂存:表示已经使用git add命令将修改的内容提交到暂存区;
  • 已提交:表示已经使用git commit命令将修改的内容提交到本地Git仓库。
  1. Git的基本操作
    命令解释
    git init初始化一个新的Git仓库
    git add 将文件添加到暂存区
    git commit -m “commit message”将暂存区的内容提交到本地Git仓库
    git status查看Git仓库的状态
    git log查看文件的修改历史
    git checkout 撤销已修改但未提交的内容
    git reset --hard <commit -id>撤销已提交的内容
    git config -l查看配置
    git config --global --list查看当前用户信息
    git clone 克隆一个项目和它的整个代码历史(版本信息)
    git push 将本地分支推送到远程分支
    git fetch 将远程分支的最新代码拉取到本地,但是并不会自动合并到本地分支
  2. Git分支管理

分支是Git最重要的功能之一,它可以让开发者在不影响主分支的情况下,安全地进行新功能的开发和测试。常用的分支操作包括:

命令解释
git branch 创建新分支
git checkout 切换分支
git merge 合并分支
git branch -d 删除分支
git branch列出本地分支
  1. Git远程操作

Git可以通过远程仓库实现不同开发者之间的协作,以及备份和恢复等功能。常用的远程操作包括:

  • 将本地仓库连接到远程仓库:git remote add origin <remote-url>

  • 从远程仓库拉取代码:git pull

  • 将本地代码推送到远程仓库:git push

  • 查看远程分支:git branch -r

  1. Git忽略文件

​ Git可以通过在项目根目录下创建.gitignore文件来忽略一些文件或文件夹。在.gitignore文件中指定的文件或文件夹将不会被Git跟踪,也不会出现在版本控制系统中。

.gitignore文件的语法如下:

# 这是注释
*.txt  # 忽略所有txt文件
/foo  # 忽略根目录下的foo文件夹
bar/  # 忽略根目录下所有名为bar的文件或文件夹
!/bar/baz.txt  # 但是保留bar/baz.txt这个文件

​ 在.gitignore文件中,你可以使用通配符、斜杠(/)和感叹号(!)等符号来指定要忽略或保留的文件和目录。例如,通配符*.txt表示忽略所有扩展名为.txt的文件。斜杠/表示目录分隔符。感叹号!表示取消忽略。

​ 需要注意的是,.gitignore文件只对尚未被Git跟踪的文件或目录生效,如果一个文件或目录已经被Git跟踪了,.gitignore文件对它们就不再生效。如果你想取消跟踪已经被Git跟踪的文件,需要使用git rm --cached命令,同时在.gitignore文件中添加对应项。

  1. Git分支

​ Git 分支是为了在软件开发中更好地进行代码管理而设计的一种功能。分支实际上是指向提交对象(commits)的可变指针。 在大多数软件开发工具中,分支是不同于主目录的开发专用的相对独立区域。

​ Git 中的分支类似于一个指向当前提交对象(commit)的指针。Git 中的默认分支名为 master,但你也可以创建自己的分支。在每个新的分支上,你可以更改代码并提交,而这些提交不会影响主分支上的代码。

​ 分支的主要目的是让你可以在你想要试验一些新功能的同时不会对主分支产生影响。一旦新的功能测试通过,你可以将该分支与主分支合并,然后把该分支删除。

​ master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

​ 如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!

​ 在 Git 中,分支是极其轻量级的,创建和删除它们几乎是瞬间完成的操作。因此,在 Git 中,分支的使用被广泛认为是一种好习惯。

在这里插入图片描述

更多的 Git 相关知识可以参考官方文档 https://git-scm.com/doc 或者 Git 的在线文档教程 https://try.github.io/ 。

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

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

相关文章

华为OD机试真题2023(JAVA)

目录 华为OD机试是什么&#xff1f;华为OD面试流程&#xff1f;华为OD机试通过率高吗&#xff1f;华为OD薪资待遇&#xff1f;华为OD晋升空间&#xff1f; 大家好&#xff0c;我是哪吒。 本专栏包含了最新最全的华为OD机试真题&#xff0c;有详细的分析和Java代码解答。已帮助…

web前端的同源策略是什么?

一、同源策略 1995年&#xff0c;同源政策由 Netscape 公司(网景公司)引入浏览器。目前&#xff0c;所有浏览器都实行这个政策。同源政策的目的&#xff0c;是为了保证用户信息的安全&#xff0c;防止恶意的网站窃取数据。随着互联网的发展&#xff0c;“同源政策”越来越严格…

深入理解java虚拟机精华总结:运行时栈帧结构、方法调用、字节码解释执行引擎

深入理解java虚拟机精华总结&#xff1a;运行时栈帧结构、方法调用、字节码解释执行引擎 运行时栈帧结构局部变量表操作数栈动态连接方法返回地址 方法调用解析分派静态分派动态分派 基于栈的字节码解释执行引擎 运行时栈帧结构 Java虚拟机以方法作为最基本的执行单元&#xf…

栈在表达式中的应用(中/后前缀的转换)机算,手算模拟。

一.中缀表达式转后缀表达式 初始化一个栈&#xff0c;用于保存 暂时还不确定的运算顺序的“运算符” 。 从 左往右 依次扫描&#xff0c;会遇到三种情况&#xff1a; 1.遇到 操作数&#xff0c;直接加入后缀表达。 2.遇到 界限符&#xff1a;     ①遇到 “(” 入栈。  …

计算机系统-虚拟存储器

例行前言&#xff1a; 本篇不是学习课程时的笔记&#xff0c;是重看这本书时的简记。对于学习本课程的同学&#xff0c;未涉及的内容不代表考试不涉及(mmap&#xff0c;动态存储器分配&#xff0c;linux虚拟存储器)。本章的大部分内容已经在OS中学习过了&#xff0c;但本章内容…

SSM架构项目实战(CRM)

开始时间&#xff1a;7月17日 技术架构 &#xff08;一&#xff09;Web开发4层开发 视图层&#xff08;view&#xff09;&#xff1a;展示数据&#xff0c;跟用户交互。《html&#xff0c;css&#xff0c;js&#xff0c;jquery&#xff0c;bootstrap&#xff08;ext|easyUI&…

代码随想录算法训练营第三十五天 | 两维贪心、重叠区间

860.柠檬水找零 文档讲解&#xff1a;代码随想录 (programmercarl.com) 视频讲解&#xff1a;贪心算法&#xff0c;看上去复杂&#xff0c;其实逻辑都是固定的&#xff01;LeetCode&#xff1a;860.柠檬水找零_哔哩哔哩_bilibili 状态&#xff1a;能直接做出来。 思路 只需要维…

【java-04】深入浅出多态、内部类、常用API

主要内容 多态 内部类 常用API 1 多态 1.1 面向对象三大特征 ? 封装 , 继承 , 多态 1.2 什么是多态 ? 一个对象在不同时刻体现出来的不同形态 举例 : 一只猫对象 我们可以说猫就是猫 : Cat cat new Cat();我们也可以说猫是动物 : Animal cat new Cat();这里对象在不…

知识推理——CNN模型总结

记录一下我看过的利用CNN实现知识推理的论文。 最后修改时间&#xff1a;2023.05.08 目录 1.ConvE 1.1.解决的问题 1.2.优势 1.3.贡献与创新点 1.4.方法 1.4.1 为什么用二维卷积&#xff0c;而不是一维卷积&#xff1f; 1.4.2.ConvE具体实现 1.ConvE 论文&#xff1a…

聊聊我在阿里第一年375晋升的心得

前言 思来想去&#xff0c;觉得这个事情除了领导赏识大佬抬爱之外&#xff0c;还是挺不容易的&#xff0c;主观认为有一定的参考价值&#xff0c;然后也是复盘一下&#xff0c;继续完善自己。 绩效 首先晋升的条件就是要有个好绩效&#xff0c;那么我们就先基于绩效这个维度…

基于`IRIS`列存储,我们能做什么

文章目录 基于IRIS列存储&#xff0c;我们能做什么简介使用场景如何使用列存储什么情况下使用列储存统计数据数量count计算字段平均值avg计算字段和sum 列存储与行存储区别总结 基于IRIS列存储&#xff0c;我们能做什么 简介 列存储是一种数据存储方式&#xff0c;与传统的行…

Win11-RTX4060安装Pytorch-GPU干货避坑指南

文章目录 1、版本要和pytorch官网对应&#xff0c;CUDA11.8及其对应版本的cudnn2、CUDA Toolkit安装出现自动重启3、Python版本4、配置永久国内镜像源5、要在激活的虚拟环境里安装pytorch6、进入python后检查是否gpu配置成功7、在虚拟环境中启动jupyter notebook8、conda中inst…

【Docker】5、Dockerfile 自定义镜像(镜像结构、Dockerfile 语法、把 Java 项目弄成镜像)

目录 零、学习内容一、镜像结构二、Dockerfile四、基于 java:8-alpine 构建自己的 Java 项目镜像 零、学习内容 镜像结构Dockerfile 语法构建 Java 项目 ① 之前使用的镜像都是 DockerHub 官方提供的 ② 开发者需要将自己的微服务制作为镜像 一、镜像结构 镜像是由应用程序及其…

【新星计划-2023】什么是ARP?详解它的“解析过程”与“ARP表”。

一、什么是ARP ARP&#xff08;地址解析协议&#xff09;英文全称“Address Resolution Protocol”&#xff0c;是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机&#xff0c;并接收返回消息&#xff0c;以此确…

ConcurrentHashMap实现原理

1. 哈希表 1.1 介绍 哈希表是一种key-value存储数据的结构&#xff0c;根据key即可查到对应的value。 如果所有的键是整数&#xff0c;我们可用简单的无序数组来表示&#xff0c;键作为数组索引&#xff0c;值即为对应的值 1.2 链式哈希表 链式哈希表本质由一组链表构成。每…

用MacBook实操:docker本地部署mysql+php+nginx坏境

大家好&#xff0c;我拿出我的macbook,带着大家实操用docker部署mysqlphpnginx环境。 之前的小白实操搭建Nginx1.2.0PHP7.0MySQL5.7Thinkphp5项目&#xff0c;看这篇就够了&#xff0c;欢迎阅读。 之前的是服务器上配置环境&#xff0c;现在在mac本地搭建全栈开发环境。 目录…

LiveData详解(实战+源码+粘性事件解决方案)

1. 简介 LiveData 是一种可观察的数据存储器类。与常规的可观察类不同&#xff0c;LiveData 具有生命周期感知能力&#xff0c;意指它遵循其他应用组件&#xff08;如 activity、fragment 或 service&#xff09;的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周…

mysql查询之子查询

0. 概念 SQL语句中嵌套SELECT语句&#xff0c;称为嵌套查询&#xff0c;又叫子查询。 查询可以基于一个表或多个表。子查询可以添加到SELECT、UPDATE和DELETE中&#xff0c;而且可以进行多层嵌套。子查询常用操作符有 ANY(SOME)&#xff0c;ALL、IN、EXISTS。也可以使用比较运…

Codeforces Round 872 (Div. 2) A-C

Start&#xff1a;May/08/2023 20:05UTC8 Length&#xff1a;02:00 这次总该上分了吧 A LuoTianyi and the Palindrome String 1 s, 256 MB x8531 都一样是-1&#xff0c;普通回文是size()-1 #include<bits/stdc.h> using namespace std; #define int long long #def…

架构-软件工程模块-1

概述 这一模块选择题的分值比较多&#xff0c;案例题和论文也有能用上的地方。主要知识点会特殊标注或说明。 软件开发生命周期 软件工程三要素&#xff1a;方法、工具、过程。不会直接考&#xff0c;但可帮助记忆理解。 传统软件生命周期方法学分为&#xff1a;&#xff08;选…