Git【入门】从安装到会用(千字总结●超详细)

news2024/10/6 6:42:49

我的个人主页☆光之梦☆_C语言基础语法(超详细),【java入门】语法总结-CSDN博客

创作不易,如果能帮到你就好

注:你的 👍点赞 ⭐收藏 📝评论   是对博主最大的支持与鼓励喔

认真看完这篇文章,保你会用(不会来找我)…… 

目录

Git使用

一、Git介绍

1.1 版本控制(理解)

1.2 开发中存在的问题(理解)

1.3 SVN版本控制(理解)

1.4 Git与SVN对比

二、Git下载和安装

2.1 Git的下载

2.2 Git的安装

2.3 TortoiseGit的安装

三、Git操作入门

3.1 Git 基本工作流程(理解)

3.2 Git 常用命令

3.3 Git 基本工作流程

3.4 Git使用图形化工具来操作(理解)

四、Git版本管理

4.1 历史版本切换(理解)

4.2 分支管理介绍(理解)

4.3 分支管理操作


Git使用

一、Git介绍

1.1 版本控制

无论是代码编写,还是文档编写,我们都会遇到对文档内容反复修改的情况

但我们不能只保留最后一次修改的文件,其余版本也要保留,有可能老板想要的就是你的上一个版本的

1.2 开发中存在的问题

  • 程序员小明负责的模块就要完成了,就在即将提交发布之前的一瞬间,电脑突然蓝屏,硬盘光荣下岗!

几个月来的努力付之东流

代码备份不仅要备份到本地,还需要备份到云端

要是电脑坏了,那所以的代码全都白写了

  • 老王需要在项目中加入一个很复杂的功能,一边尝试,一边修改代码,就这样摸索了一个星期。 可是这被改得面目全非的代码已经回不到从前了。

版本控制很重要!

  • 小明和老王先后从文件服务器上下载了同一个文件

协同工作也很重要!

  • 因项目中Bug过多,导致项目进度拖延,项目经理老徐因此被骂,但不清楚Bug是手下哪一个程序员写的

责任追溯很重要!

1.3 SVN版本控制(理解)

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑, 所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。

  • 服务器单点故障

    将会导致所有人员无法工作

  • 而服务器硬盘损坏

    这意味着,你可能失去了该项目的所有历史记录,这是毁灭性的。

1.4 Git与SVN对比

Git是在2005年,Linux系统的创建者Linus Torvalds,为了帮助全球的开发者,维护Linux系统内核的开发 而开发了自己的开源分布式版本控制工具,分为两种类型的仓库:本地仓库和远程仓库。

  • 每一个客户端都保存了完整的历史记录

    服务器的故障,都可以通过客户端的记录得以恢复。

二、Git下载和安装

2.1 Git的下载

官网下载地址:Git - Downloads

2.2 Git的安装

  1. 双击安装包,进入安装向导界面

  2. 指定安装目录

  1. 一路next下一步,等待安装

  1. 安装完成

Git Bash:Git提供的命令行工具

Git GUI: Git提供的图形界面工具

Git CMD 就像带有 git 命令的常规 Windows 命令提示符。 它允许您通过命令行使用所有 Git 功能。

  1. 运行Git命令客户端,使用git --version 命令,可以查看git版本

2.3 TortoiseGit的安装

TortoiseGit:图形化工具

搜索TortoiseGit进官网下载

再下载一个对应的:TortoiseGit-LanguagePack

  1. 双击安装包,进入安装向导界面

  2. 一路next下一步

  3. 指定安装目录

  4. 安装

  5. 配置

注:这些能显示出来就表示设置好啦 

安装TortoiseGit中文语言包,一路next即可

  1. 配置TortoiseGit中文语言

显示为中文就表示设置好啦

三、Git操作入门

3.1 Git 基本工作流程(理解)

本地仓库

先在工作目录(Working Tree)中写代码,然后再通过git命令把代码添加到暂存区(index)中,最后把写好的代码提交到本地历史仓库中

3.2 Git 常用命令

命令作用
git init初始化,创建 git 仓库
git status查看 git 状态 (文件是否进行了添加、提交操作)
git add 文件名添加,将指定文件添加到暂存区
git commit -m '提交信息'提交,将暂存区文件提交到历史仓库
git log查看日志( git 提交的历史日志)

3.3 Git 基本工作流程

步骤:

  1. 创建工作目录、初始化本地 git 仓库

  2. 新建一个 test. txt 文件(暂不执行添加操作)

  3. 使用 status 命令,查看状态

  4. 使用 add 命令添加,并查看状态

  5. 使用 commit 命令,提交到本地历史仓库

  6. 使用 log 命令,查看日志

  7. 修改 test. txt 文件

  8. 添加并提交,查看日志

commit 会把暂存区中所有的文件全部添加到本地仓库中

操作步骤

  1. 创建工作目录、初始化本地 git 仓库

  2. 新建一个 test.txt 文件(暂不执行添加操作)

  3. 使用 status 命令,查看状态

  4. 使用 add 命令添加,并查看状态

  5. 使用 commit 命令,提交到本地历史仓库

  6. 使用 log 命令,查看日志

  7. 修改 test.txt 文件

  8. 添加并提交,查看日志

3.4 Git使用图形化工具来操作(理解)

  1. 创建工作目录、初始化本地 git 仓库

  2. 新建一个 test.txt 文件(暂不执行添加操作)

  3. 选中文件右键,选择TortoiseGit,之后选择添加

  4. 空白处右键,Git提交,提交到本地历史仓库

  5. 空白处右键,TortoiseGit,显示日志,可以产看日志信息

  6. 修改 test.txt 文件

  7. 添加并提交,查看日志

四、Git版本管理

4.1 历史版本切换

  • 准备动作

    1. 查看 my_project 的 log 日志 git reflog :可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录的操作)

    2. 增加一次新的修改记录

  • 需求: 将代码切换到第二次修改的版本

    指令:git reset --hard 版本唯一索引值

4.2 分支管理介绍

分支在干活时并行工作,互不打扰,最终能合并到一起

  • 分支

    • 由每次提交的代码,串成的一条时间线

    • 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线

  • 分支的使用场景

    1. 周期较长的模块开发 假设你准备开发一个新功能,但是需要一个月才能完成 第一周写了20%的代码,突然发现原来已经写好的功能出现了一个严重的Bug 那现在就需要放下手中的新功能,去修复Bug 但这20%的代码不能舍弃,并且也担心丢失,这就需要开启一个新的版本控制。

    2. 尝试性的模块开发 业务人员给我们提出了一个需求,经过我们的思考和分析 该需求应该可以使用技术手段进行实现。 但是我们还不敢确定,我们就可以去创建一个分支基于分支进行尝试性开发。

  • 分支工作流程

    • Master: 指向提交的代码版本

    • Header: 指向当前所使用的的分支

主分支:Master

当你提交了第一个代码版本,那Master指向的就是第一个版本,提交第二个代码版本,Master指向的就是第二个版本,以此类推

假设Dev这个分支的功能我们实现完了,怎么把这个分支合并到主分支上?

  1. 把Dev提交一次

  2. 再让Master这个指针,指向到Dev当前的时间版本

  3. 然后让header指针指向回Master这个主分支

即可完成合并

如图:

如果你觉得Dev这个分支现在没必要留下来,那么你可以直接把它删了

  1. 创建新分支

  2. 切换分支

  3. 合并分支

  4. 删除分支

4.3 分支管理操作

  • 创建和切换

    创建分支命令:git branch 分支名 切换分支命令:git checkout 分支名

  • 新分支添加文件

    查看当前分支文件命令:ls

  • 合并分支

    合并分支命令:git merge 分支名

  • 删除分支

    删除分支命令:git branch -d 分支名

  • 查看分支列表

    查看分支命令:git branch

总结:不同分支之间的关系是平行的关系,不会相互影响

git 本地仓库

恭喜你,已经全部看完啦👍👍👍

关于git部分的讲解就到这啦

剩下关于GitHub的使用部分请跳转至我的这篇文章:

如果有问题随时都可以来问我,我会随时为您解答!欢迎大家与我一起学习,共同进步。 

 tip:如果你看完了这篇文章,还给我点了一个小关注的话,记得来后台私信我哦,我会免费分享给你一份超棒的github主页美化教程+可以直接套模版的主页文件哦(瞬间让你的github主页的规格提升一个档次)

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

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

相关文章

极智AI | 能够轻松构建大模型端到端应用的LangChain 到底是什么

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文来介绍一下 能够轻松构建大模型端到端应用的 LangChain,到底是什么。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq 先上官…

Cesium热力图

二、代码 <!doctype html> <html><head><meta charset"utf-8"><link rel"stylesheet" href"./css/common.css"><title>热力图</title><script src"./js/config.js"></script>…

手动实现SpringMVC底层机制

手动实现SpringMVC底层机制 &#x1f41f;准备工作&#x1f34d;搭建SpringMVC底层机制开发环境 实现任务阶段一&#x1f34d;开发ZzwDispatcherServlet&#x1f966;说明: 编写ZzwDispatcherServlet充当原生的DispatcherServlet(即核心控制器)&#x1f966;分析代码实现&#…

基于点标签的目标检测与计数深度学习框架盘点

(1)P2PNet <1>P2PNet提出 论文出处&#xff1a;Rethinking Counting and Localization in Crowds: A Purely Point-Based Framework 论文链接&#xff1a;https://arxiv.org/abs/2107.12746 开源代码&#xff1a;https://github.com/TencentYoutuResearch/CrowdCount…

物联网AI MicroPython传感器学习 之 MQ136硫化氢传感器

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 MQ136 是一种硫化氢检测传感器&#xff0c;感应范围为 1 - 200ppm。传感元件是 SnO2&#xff0c;它在清洁空气中的电导率较低。当存在 H₂S 气体时&#xff0c;传感器的电导率随着气体浓度的升…

Gralloc ION DMABUF in Camera Display

目录 Background knowledge Introduction ia pa va and memory addressing Memory Addressing Page Frame Management Memory area management DMA IOVA and IOMMU Introduce DMABUF What is DMABUF DMABUF 关键概念 DMABUF APIS –The Exporter DMABUF APIS –The…

PyTorch模型的多种导出方式提供给其他程序使用

PyTorch模型的多种导出方式提供给其他程序使用 flyfish PyTorch模型的多种导出方式 PyTorch模型的多种导出方式提供给其他程序使用1 模型可视化2 预训练模型3 ONNX模型导出有输入有输出TRAINING导出方式EVAL导出方式 4 自定义输入输出的名字&#xff0c;并可批量推理5 导出JI…

PyG两个data Datsaset v.s. InMemoryDataset

可以看到InMemoryDataset 对CPU更加友好 https://pytorch-geometric.readthedocs.io/en/latest/modules/data.html#pytorch-lightning-wrappers

Linux下C++编程-进度条

引言&#xff1a;本篇主要在linux下的C实现进度条的功能。按照多文件编程&#xff0c;同时使用Makefile文件完成多文件的编译、连接。 首先创建头文件&#xff1a; 1. progress.h #pragma once #include <iostream> #include <cstring> #include <iomanip>…

Navicat定时任务

Navicat定时任务 1、启动Navicat for MySQL工具&#xff0c;连接数据库。 2、查询定时任务选项是否开启 查询命令&#xff1a;SHOW VARIABLES LIKE ‘%event_scheduler%’; ON表示打开&#xff0c;OFF表示关闭。 打开定时任务命令 SET GLOBAL event_scheduler 0; 或者 SET G…

elasticsearch 8.5.3问题记录

一&#xff1a;解决 elasticsearch 高版本 warning: ignoring JAVA_HOMEC:\Program Files\Java\jdk-11&#xff1b; using bundled JDK if defined JAVA_HOME (set JAVA_HOME%JAVA_HOME%; )示例版本Elasticsearch 8.5.3 可以与 JDK 11 兼容&#xff0c;但不支持 JDK 17。确保选…

离散数学 期末复习

离散数学 期末复习 图片过多&#xff0c;若无法显示&#xff0c;请转至 https://chenhaotian.top/study/discrete-mathematics-final-review/ 访问全文 发布于 2023-06-18 第 1 章 命题逻辑 1.2 等值演算 真值表法 等值演算法 题&#xff1a;等值演算 题&#xff1a;等值演…

python 学习随笔 5

函数 在python中&#xff0c;函数也是对象。 def func():""" 这是文档字符串"""print("Hello World")fun带参数函数 函数和变量注解 def calc(a:int, b:int) -> int: # 为函数的形参和返回值标注类型return a b print(calc(1,3…

C语言重点突破(2)指针(三)

本章重点 1. 函数指针 2. 函数指针数组3. 指向函数指针数组的指针 4. 回调函数 1.函数指针 首先可以明确的是&#xff0c;函数指针和数组指针的类型都是指针类型&#xff0c;用来存放地址的&#xff0c;数组指针存放数组的地址&#xff0c;而函数指针存放的便是函数的地址。 …

ESPHome 通过http获取设备的状态

substitutions: { desc: 传感器, devicename: sensor }esphome:name: $devicenameplatform: ESP8266board: nodemcuv2arduino_version: latest# Enable logging logger:# Enable Home Assistant API api:encryption:key: "MhXiJqKKyCXTqjZWqtegaP1tQSUpPtbnXP9iV1i2TzE&qu…

SSM - Springboot - MyBatis-Plus 全栈体系(二十四)

第五章 SSM 二、SSM 整合配置实战 1. 依赖整合添加 1.1 数据库准备 依然沿用 mybatis 数据库测试脚本&#xff01; CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT AUTO_INCREMENT,emp_name CHAR(100),emp_salary DOUBLE(10,5),PRIM…

视频号双11激励政策,快来看一看

双十一即将来临&#xff0c;不少平台都公布了自己的双十一政策。这篇文章&#xff0c;我们来看看视频号推出的激励政策&#xff0c;看有哪些需要准备的。

var、const、let的区别

目录 一、作用域 二、变量提升&#xff08;Hoisting&#xff09; 三、重复声明 四、 赋值和重新赋值 五、全局对象属性 六、使用场景 七、声明和赋值的数据类型 一、作用域 var 声明的变量在函数作用域内有效&#xff0c;如果在函数外声明&#xff0c;它将成为全局变量…

C++-Mongoose(3)-http-server-https-restful

1.url 结构 2.http和 http-restful区别在于对于mg_tls_opts的赋值 2.1 http和https 区分 a) port地址 static const char *s_http_addr "http://0.0.0.0:8000"; // HTTP port static const char *s_https_addr "https://0.0.0.0:8443"; // HTTP…

Springboot全局异常和自定义异常

目录 依赖 一、全局异常处理 1、系统异常 2、业务异常 &#xff08;1&#xff09;、接口配置 &#xff08;2&#xff09;、服务配置 二、自定义异常 依赖 <!-- validator&#xff0c;用于接口参数校验 --><dependency><groupId>org.hibernate.valida…