Git使用详解:从安装到精通

前言

什么是Git

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。

可以理解:

        git是一个管理源代码的工具,主要用于企业团队开发。

Git的用途

  • 代码回溯:快速回到某个历史版本;
  • 版本切换:不同的项目可能有不同的版本(代码不相同),在不同的版本间进行切换;
  • 多人协作:多个人之间代码共享;
  • 远程备份:git通过仓库管理代码;

Git概述

Git简介

Git不关心管理什么文件(对于视频,音频一样管理),当然,我们主要是对代码进行管理(对管理对象并不关注)。

Git下载与安装

注意:Git的版本不要低于2.20版本,否则可能无法在idea中集成Git工具

Git代码托管服务

所谓的代码托管:实际上就是搭建Git远程仓库时使用。(Git的托管服务实际上就是搭建远程Git仓库)

常见的Git代码托管服务

使用码云代码托管服务

 码云可以理解为一个网站,上面可以进行Git托管我们的源代码,相比于外国网站github,码云的速度比较快。

1.注册登录码云账号:

 

2.使用码云创建远程仓库:

  每一个远程仓库使用一个网络地址指代:本质上使用url地址代替远程仓库的路径

Git常用命令

Git全局设置

 

 获取Git仓库

 

本地初始化一个git仓库

执行步骤如下:

1.在任意一个目录下创建一个空目录作为我们的本地Git仓库

2.进入这个目录中,点击右键打开Git bash窗口

3.执行命令 git init

如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹,主要看是否打开了查看隐藏文件夹的选项)则说明Git仓库创建成功

从远程仓库克隆

  • 此时可以将我们在gitee上创建的远程仓库克隆到本地(url为gitee中远程仓库的网络地址)
  • 在本地初始化Git仓库和从远程仓库克隆(本质上都是创建一个本地仓库来管理源文件)
  • 注意:第一次克隆远程仓库需要对应gitee的账号和密码

工作区、暂存区、版本库

  • 版本库:.git隐藏文件夹就是版本库。里面存放着配置信息、日志信息和文件版本信息等
  • 工作区:包含.git的文件夹目录就是工作区,存放开发过程中的源代码
  • 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

暂存区操作

在本地仓库中演示暂存操作 ,我们随便创建一个空的后缀名.txt的文件,命名为User。右键进入命令行界面

  • 没有文件是没有暂存区的;
  • 只能在工作区中进行命令行操作,它是一个分支(所有文件都有暂存区,只能在工作区进行命令行操作)

Git工作区中文件的状态

本地仓库操作

 查看文件状态

 此时修改文件后查看文件状态:例如在User.txt中随便添加一段文字

红色表示已修改

绿色表示已暂存

将文件的修改加入暂存区

 取消暂存或切换版本

取消暂存,文本又回到已修改未暂存的状态了

切换到指定的版本

使用命令 git  reset --hard   指定的版本随机序号

提交文件到版本库

文件需要先添加到暂存区后,才能提交到版本库中

注意:当该命令没有带-m参数(提交时保留一些额外信息)时,会跳出commit change log (COMMIT_EDITMSG)界面,这个是vi编辑器(也有可能是vim编辑器),和linux使用的vi编辑器是一样的,因为涉及到是否要保存编辑内容,所以退出命令有多种。

vi编辑器操作如下:

输入参数之后,出现新的命令窗口,此时输入i进入编辑模式。插入信息。然后按esc退出编辑模式

然后输入:wq 表示保存退出

注意:在已经关联了远程仓库的本地仓库中,如果上传文件失败,需要先将远程仓库中的文件pull下来,然后再上传。

将文件提交后若再次进行修改,需要放到暂存区然后再次提交(版本修改后,显示红色,再次提交到暂存区时变成绿色)

查看日志

可以在日志中查看不同的提交版本,此时可以通过reset的git命令切换不同的版本(通过reset进行版本回溯(指定版本)和取消暂存 )

远程仓库操作

查看远程仓库

如果想要查看已经配置的远程仓库服务器,可以运行git remote 命令,它会列出每一个远程服务器的简写。如果我们已经克隆了远程仓库,那么至少应该能看到origin,这是克隆的仓库服务器的默认名字

本地添加远程仓库

这里的origin1是对我们添加的远程仓库起一个别名

需要注意:

操作远程仓库的命令,必须在已经克隆的远程仓库下使用(默认仓库服务器名字为origin)

git remote add 只是在您的git config中创建一个条目,指定特定URL的名称。

你必须有一个现有的git仓库来使用它。需要init

git clone通过复制位于您指定的URI上的现有git存储库来创建新的git存储库。不需要init

也就是说添加远程仓库,需要初始化,而克隆远程仓库不需要初始化

如果我们在一个空文件夹下直接使用git remote 命令会出现如下提示:

 此时需要进行git init 初始化,此时在使用git remote add 命令就可以关联一个远程仓库了

添加远程仓库的命令:

git remote add <shortname><url>

shortname是简称的意思,一般约定俗成指定为origin ,url是远程仓库的地址

克隆远程仓库到本地

命令格式:

git clone [url]

推送至远程仓库

origin是远程仓库名

master是分支名

在使用git push命令将本地文件推送至码云远程仓库时,需要进行身份认真,认真通过后才可以推送

从远程仓库拉取

命令格式:

git pull origin master

从远程仓库拉取时,指定拉取的远程仓库名和分支名

分支操作

将工作从主线中分离,同一个仓库可以有多个分支,每个分支相互独立,互不干扰

git init 命令 默认创建一个master分支

 查看分支

 创建分支

 切换分支

 推送至远程仓库分支

合并分支

命令格式:

git merge [name]

合并时冲突问题:

        两个分支中同一个文件都修改了,再次合并就会出错,手动处理错误,即自己修改分支中的文件,然后提交到本地仓库(注意出现错误可以加上命令 -i)

标签操作

  • 因为分支是一个动态的概念,会向下继续发展的。
  • 因此使用标签标记分支某个重要的功能节点,标签是静态的。
  • 标签:表示的是某个分支某个时间点的状态,是个静态的概念
    • 使用静态的标签来标记分支中重要的功能节点

Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。(比如项目的不同版本号)

检出标签:需要新建一个分支来指向某个标签

Git检出标签是指将代码库恢复到某个特定的标签状态,标签可以是某个特定的版本号、发布日期或其他自定义标识符,用于指定代码库的某个特定版本。通过检出标签,您可以让代码库回到过去的某个特定状态,以便进行比较、回归测试或其他操作。

在IDEA中使用Git

在idea使用git,就是在项目的根目录下创建一个本地仓库,并且关联一个远程仓库,先将项目提交到本地仓库,然后推送到远程仓库

当然,也可以直接克隆远程仓库。(本质上是初始化一个本地仓库管理源文件)

idea中使用git的方式可以更加便捷,这里不详细说明了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构C语言】【入门】【首次万字详细解析】入门阶段数据结构可能用到的C语言知识,一章让你看懂数据结构!!!!!!!

前言&#xff1a;欢迎各位光临本博客&#xff0c;这里小编带你直接手撕入门阶段的数据结构的C语言知识&#xff0c;让你不再看见数据结构就走不动道。文章并不复杂&#xff0c;愿诸君耐其心性&#xff0c;忘却杂尘&#xff0c;道有所长&#xff01;&#xff01;&#xff01;&am…

学习笔记——RegNet:Designing Network Design Spaces

RegNet&#xff1a;Designing Network Design Spaces RegNet&#xff1a;设计一个网络设计空间 论文地址&#xff1a; https://arxiv.org/pdf/2003.13678 1、前言 在这项工作中&#xff0c;作者提出了一种新的网络设计范例。 作者的目标是帮助增进对网络设计的理解并发现跨设置…

网络安全:建筑公司会计软件遭受暴力攻击

黑客正在暴力破解基金会会计服务器上高权限账户的密码&#xff0c;这些账户广泛用于建筑行业&#xff0c;从而侵入企业网络。 这一恶意活动最先被 Huntress 发现&#xff0c;其研究人员于 2024 年 9 月 14 日检测到了此次攻击。 Huntress 已经发现这些攻击对管道、暖通空调、…

元学习的简单示例

代码功能 模型结构&#xff1a;SimpleModel是一个简单的两层全连接神经网络。 元学习过程&#xff1a;在maml_train函数中&#xff0c;每个任务由支持集和查询集组成。模型先在支持集上进行训练&#xff0c;然后在查询集上进行评估&#xff0c;更新元模型参数。 任务生成&…

时间安全精细化管理平台存在未授权访问漏洞

漏洞描述 登录--时间&amp;安全精细化管理平台存在未授权访问漏洞导致与员工信息泄露 FOFA&#xff1a; body"登录--时间&amp;安全精细化管理平台" 漏洞复现 POC: IP/acc/_checkinoutlog_/

Linux开发工具(git、gdb/cgdb)--详解

目录 一、Linux 开发工具分布式版本控制软件 git1、背景2、使用 git&#xff08;1&#xff09;预备工作——安装 git&#xff1a;&#xff08;2&#xff09;克隆远程仓库到本地&#xff08;3&#xff09;把需要提交的代码拷贝到本地仓库&#xff08;4&#xff09;提交本地仓库文…

基于协同过滤+SpringBoot+Vue的剧本杀服务平台系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤JavaSpringBootV…

Liveweb视频汇聚平台支持GB28181转RTMP、HLS、RTSP、FLV格式播放方案

GB28181协议凭借其在安防流媒体行业独有的大统一地位&#xff0c;目前已经在各种安防项目上使用。雪亮工程、幼儿园监控、智慧工地、物流监控等等项目上目前都需要接入安防摄像头或平台进行直播、回放。而GB28181协议作为国家推荐标准&#xff0c;目前基本所有厂家的安防摄像头…

【数据结构-二维差分】力扣2536. 子矩阵元素加 1

给你一个正整数 n &#xff0c;表示最初有一个 n x n 、下标从 0 开始的整数矩阵 mat &#xff0c;矩阵中填满了 0 。 另给你一个二维整数数组 query 。针对每个查询 query[i] [row1i, col1i, row2i, col2i] &#xff0c;请你执行下述操作&#xff1a; 找出 左上角 为 (row1…

Qt圆角窗口

Qt圆角窗口 问题&#xff1a;自己重写了一个窗口&#xff0c;发现用qss设置圆角了&#xff0c;但是都不生效&#xff0c;不过子窗口圆角都生效了。 无边框移动窗口 bool eventFilter(QObject *watched, QEvent *evt) {static QPoint mousePoint;static bool mousePressed f…

灵当CRM系统index.php存在SQL注入漏洞

文章目录 免责申明漏洞描述搜索语法漏洞复现nuclei修复建议 免责申明 本文章仅供学习与交流&#xff0c;请勿用于非法用途&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任 漏洞描述 灵当CRM系统是一款功能全面、易于使用的客户关系管理&#xff08;C…

在Linux中运行flask项目

准备 这里我准备了一个GitHub上某个大佬写的留言板的Flask项目&#xff0c;就用这个来给大家做示范了。 查看留言板的目录结构 查看主程序所用的库函数 只有一个第三方库 Flask 安装pip sudo apt install python3-pip -y测试 pip 安装成功 修改pip镜像源 修改pip的默认下载…

表格标记<table>

一.表格标记、 1table&#xff1a;表格标记 2.caption:表单标题标记 3.tr:表格行标记 4.td:表格中数据单元格标记 5.th:标题单元格 table标记是表格中最外层标记&#xff0c;tr表示表格中的行标记&#xff0c;一对<tr>表示表格中的一行&#xff0c;在<tr>中可…

嵌入式 开发技巧和经验分享

文章目录 前言嵌入式 开发技巧和经验分享目录1.1嵌入式 系统的 定义1.2 嵌入式 操作系统的介绍1.3 嵌入式 开发环境1.4 编译工具链和优化1.5 嵌入式系统软件开发1.6 嵌入式SDK开发2.1选择移植的系统-FreeRtos2.2FreeRtos 移植步骤2.3 系统移植之中断处理2.4系统移植之内存管理2…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(二)-索引

场景 首先介绍测试的场景&#xff0c;本文schema定义 pdm文档索引&#xff0c;包括nested&#xff0c;扩展字段&#xff0c;文档属性扩展&#xff0c;其中_content字段是组件保留字段&#xff0c;支持文本内容 索引 索引服务索引的操作&#xff0c;包括构建&#xff0c;put …

缓存数据和数据库数据一致性问题

根据以上的流程没有问题&#xff0c;但是当数据变更的时候&#xff0c;如何把缓存变到最新&#xff0c;使我们下面要讨论的问题 1. 更新数据库再更新缓存 场景&#xff1a;数据库更新成功&#xff0c;但缓存更新失败。 问题&#xff1a; 当缓存失效或过期时&#xff0c;读取…

C++——string的了解和使用

目录 引言 为什么要学习string 1.C语言中的字符串 2.C中的字符串 auto和范围for 1.auto 1.1 auto的介绍 1.2 注意事项 2.范围for 标准库中的string类 1.string类的迭代器 1.1 begin()与end()函数 1.2 rbegin()与rend()函数 2.string类的初始化和销毁 3.string类…

企业内网安全

企业内网安全 1.安全域2.终端安全3.网络安全网络入侵检测系统异常访问检测系统隐蔽信道检测系统 4.服务器安全基础安全配置入侵防护检测 5.重点应用安全活动目录邮件系统VPN堡垒机 6.蜜罐体系建设蜜域名蜜网站蜜端口蜜服务蜜库蜜表蜜文件全民皆兵 1.安全域 企业出于不同安全防…

【ArcGISProSDK】初识

简介 ArcGIS Pro SDK 提供四种主要的可扩展性模式&#xff1a;加载项、托管配置、插件数据源和 CoreHost 应用程序。 加载项 加载项是使用 .NET 以及 Esri 的桌面应用程序标记语言 &#xff08;DAML&#xff09; &#xff08;一种由 Esri 创建的 XML 语言&#xff09;创作的…

本地不能訪問linux的kafka服務

1.本地使用kafka客戶端工具連接kafka服務&#xff0c;提示連接失敗 2. 本地使用telnet ip port命令也失敗 3.查看zookeeper和kafka服務是否正常 ps -ef | grep zookeeper ps -ef | grep kafka 3.關閉操作系統的防火墻(僅限于測試使用) 3.1.禁用防火墙 systemctl stop firew…