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.mzph.cn/web/52922.shtml

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

相关文章

Python编码系列—Python原型模式:深克隆与高效复制的艺术

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

通信工程学习:什么是FDMA频分多址

FDMA&#xff1a;频分多址 FDMA&#xff08;Frequency Division Multiple Access&#xff0c;频分多址&#xff09;是一种在无线通信领域广泛应用的多址技术。该技术通过将可用的频谱资源按频率划分&#xff0c;把传输频带划分为若干较窄且互不重叠的子频带&#xff08;或称信道…

【C语言】malloc()函数详解(动态内存开辟函数)

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.malloc()函数简介 1.函数功能 2.函数参数 &#x1f4cc;size_t size 3.函数返回值 4.函数头文件 5.函数生成空间(与calloc区别) 二.malloc()函数的具体使用 1.使…

STL值list

list容器 头文件&#xff1a;#include<list> - list是一个双向链表容器&#xff0c;可高效地进行插入删除元素 - list不可以随机存取元素&#xff0c;所以不支持at.(pos)函数与[]操作符 注&#xff1a;list使用迭代器访问数据时可以一步一步走自增自减&#xff08;即…

分享一个基于微信小程序的居家养老服务小程序 养老服务预约安卓app uniapp(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

【苍穹外卖】总结

1 pom 依赖 1.1 MyBatis Spring 用于简化 MyBatis 与 Spring Boot 的集成&#xff0c;提供了对 MyBatis 框架的自动配置支持&#xff0c;简化了数据访问层的开发 1.2 Lombok Lombok 是一个 Java 库&#xff0c;能够通过注解自动生成常见的代码&#xff08;如 getter、setter、…

看Threejs好玩示例,学习创新与技术(三)

本文接上篇内容&#xff0c;继续挖掘应用ThreeJS的一些创新算法。 1、获得鼠标移动对应的地理位置 这个算法如果放在几年前&#xff0c;那肯定会难倒一帮人的。因为是三维投影涉及矩阵变换及求逆&#xff0c;而且还是投影模式下的。在Project Texture这个示例中&#xff0c;作…

Apache-wed服务器环境的安装

一。安装httpd并且开启httpd yum install httpd systemctl start httpd 二。关闭防火墙 systemctl stop firewall 三。常规配置wed服务 mkdir /www vim index.html&#xff08;里面写入自己的内容&#xff09; chmod 755 index.htm chmod 755 /www vim /etc/httpd/co…

从冯唐的成事心法 看SAP协助企业战略落地到信息化

冯唐的《成事心法》是一部结合古代智慧和现代管理理念的著作&#xff0c;通过分析和解读古代名臣张居正的管理方法&#xff0c;提出了一套实用的成事之道。这本书的结构循序渐进&#xff0c;讲解了如何在工作和生活中实现目标、解决问题。以下是《成事心法》的主要结构和内容概…

【Node.js】初识微服务

概述 Node.js 的微服务架构是一种通过将应用程序分解为独立的、松耦合的小服务的方式进行系统设计。 每个微服务负责处理一个特定的业务功能&#xff0c;并且这些服务可以独立开发、部署、扩展和管理&#xff0c;并且可以通讯。 它的核心思想就是解耦。 微服务和微前端是类…

FastText 和 Faiss 的初探了解

概览 大模型目前已经是如火如荼的程度&#xff0c;各个大厂都有推出面向大众的基础大模型&#xff0c;同时诸多行业也有在训练专有大模型&#xff0c;而大模型的发展由来却是经过多年从文本检索生成、深度学习、自然语言处理&#xff0c;在Transformer架构出来后&#xff0c;才…

前端基础知识+算法(一)

文章目录 算法二分查找条件注意方式基本原理左闭右闭正向写法 左闭右开正向写法 前端基础知识定时器及清除盒子垂直水平居中的方式垂直水平1.flex布局2.grid布局3.定位对于块级元素 解决高度塌陷的方式1.给父元素一个固定的高度2.给父元素添加属性 overflow: hidden;3.在子元素…

ip映射域名,一般用于mysql和redis的固定映射,方便快捷打包

举个例子 192.168.3.101mysql映射到mysql.smartlink.com 192.168.3.101redis redis.smartlink.com 要将IP地址映射到域名&#xff0c;可以通过几种方式实现&#xff0c;包括修改本地主机文件&#xff08;仅适用于本地开发环境&#xff09;、设置DNS解析&#xff08;适用于生产环…

IDEA-调用Restful接口

告别Swagger3/Apifox/Postman Swagger3&#xff08;丝袜哥&#xff09; 地址&#xff1a;REST API Documentation Tool | Swagger UI简介&#xff1a;在java代码里面增加注解生成接口文档 在代码里面增加注解 RestController RequestMapping("api/v1/user") Api(ta…

Java外卖小程序管理系统

技术架构&#xff1a; springboot ssm mysql redis 有需要该项目的小伙伴可以添加我Q&#xff1a;598748873&#xff0c;备注&#xff1a;CSDN 功能描述&#xff1a; 商品管理&#xff1a;新增商品、所有商品 菜单管理&#xff1a;菜单管理、菜单分类 订单管理&#x…

<<编码>> 第 12 章 二进制加法器--8位加法器 示例电路

8 位加法器内部结构 info::操作说明 鼠标单击逻辑输入切换 0|1 状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlchs-ch12-08-8-bit-adder-internal.txt 8 位加法器 info::操作说…

只要不逾期就行了吗?如何守护好你的“第二张身份证“!

在这个时代&#xff0c;信用记录已远远超越了金融交易的范畴&#xff0c;它如同一根无形的纽带&#xff0c;将我们生活的各个领域紧密相连。近闻有人甚至在步入婚姻殿堂前&#xff0c;也要细致核查对方的信用状况&#xff0c;毕竟&#xff0c;这关乎到共同生活的基石与未来幸福…

影刀RPA实战:自动化同步商品库存至各大电商平台(二)

在当今的电商世界中&#xff0c;多平台运营已成为常态。商家需要在多个电商平台上维护商品库存的一致性&#xff0c;以确保顾客体验的流畅性和库存管理的高效性。运营人员每天面临的问题&#xff0c;就是把公司的商品库存数据&#xff0c;间断性的同步到电商平台上&#xff0c;…

VMamba: Visual State Space Model 论文总结

题目&#xff1a;VMamba: Visual State Space Model&#xff08;视觉状态空间模型&#xff09; 论文&#xff1a;[2401.10166] VMamba: Visual State Space Model (arxiv.org) 源码&#xff1a;https://arxiv.org/pdf/2401.10166 (github.com) 目录 一、摘要 二、引言 三、方…

基于单片机的风机故障检测装置的设计与实现(论文+源码)

1 系统总体设计方案 通过对风机故障检测装置的设计与实现的需求、可行性进行分析&#xff0c;本设计风机故障检测装置的设计与实现的系统总体架构设计如图2-1所示&#xff0c;系统风机故障检测装置采用STM32F103单片机作为控制器&#xff0c;并通过DS18B20温度传感器、ACS712电…