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.rhkb.cn/news/428907.html

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

相关文章

接口自动化框架入门(requests+pytest)

一、接口自动化概述 二、数据库概述 2.1 概念 存储数据的仓库&#xff0c;程序中数据的载体 2.2 分类 关系型数据库&#xff1a;安全 如mysql&#xff0c;oracle&#xff0c;SQLLite database tables 行列 非关系型数据库&#xff1a;高效 如redis&#xff0c;mongoDB 数…

学习大数据DAY59 全量抽取和增量抽取实战

目录 需求流程&#xff1a; 需求分析与规范 作业 作业2 需求流程&#xff1a; 全量抽取 增量抽取 - DataX Kettle Sqoop ... 场景: 业务部门同事或者甲方的工作人员给我们的部门经理和你提出了新的需 求 流程: 联系 > 开会讨论 > 确认需求 > 落地 需求文档( 具体…

4.提升客户服务体验:ChatGPT在客服中的应用(4/10)

本文大纲旨在指导撰写一篇全面探讨ChatGPT如何通过优化客户服务流程、提供实际应用案例和用户反馈&#xff0c;以提升客户服务体验的深入博客文章。 引言 在当今竞争激烈的商业环境中&#xff0c;客户服务已成为企业成功的关键因素。优质的客户服务不仅能够增强客户满意度和忠…

天池Fashion AI 比赛失败经历分享

关联比赛: FashionAI全球挑战赛—服饰关键点定位 昨天是天池Fashion AI初赛Deadline&#xff0c; 成绩出来复赛都没能进&#xff0c;虽然结果很遗憾&#xff0c;但在比赛的过程中也接触到了不少的新东西&#xff0c;希望能在这里把我尝试过的方法都分享出来。作为对自己的总结…

Why Is Prompt Tuning for Vision-Language Models Robust to Noisy Labels?

文章汇总 本文的作者针对了提示学习的结构设计进行了分析&#xff0c;发现了一些规律&#xff1a; 1)固定的类名令牌为模型的优化提供了强正则化&#xff0c;减少了由噪声样本引起的梯度。 2)从多样化和通用的web数据中学习到的强大的预训练图像文本嵌入为图像分类提供了强大…

基于kubernetes-nmstate配置节点网络

kubernetes-nmstate 简介 kubernetes-nmstate 通过 Kubernetes API 驱动的声明式节点网络配置。 随着混合云的出现&#xff0c;节点网络设置变得更加具有挑战性。不同的环境有不同的网络要求。 容器网络接口&#xff08;CNI&#xff09;标准实现了不同的解决方案&#xff0c;…

简单多状态dp第二弹 leetcode -删除并获得点数 -粉刷房子

740. 删除并获得点数 删除并获得点数 分析: 使用动态规划解决 这道题依旧是 打家劫舍I 问题的变型。 我们注意到题目描述&#xff0c;选择 x 数字的时候&#xff0c; x - 1 与 x 1 是不能被选择的。像不像 打家劫舍 问题中&#xff0c;选择 i 位置的金额之后&#xff0c;就不…

更高效的搜索工具,国内免费好用的AI智能搜索引擎工具

搜索引擎是我们获取信息的重要渠道&#xff0c;然而由于搜索引擎搜索结果存在较多的广告以及一些无关内容&#xff0c;这使我们的搜索效率变得更低效。小编就和大家分享几款国内免费好用的AI智能搜索工具&#xff0c;提高搜索效率。 1.开搜AI搜索 开搜AI搜索是一款基于深度学…

低版本SqlSugar的where条件中使用可空类型报语法错误

SQLServer数据表中有两列可空列&#xff0c;均为数值类型&#xff0c;同时在数据库中录入测试数据&#xff0c;Age和Height列均部分有值。   使用SqlSugar的DbFirst功能生成数据库表类&#xff0c;其中Age、Height属性均为可空类型。   开始使用的SqlSugar版本较低&…

Zabbix 6.4添加中文语言

/usr/share/zabbix/include/locales .inc .phplocale -agrep “zh_CN" yum install langpacks-zh_CN.noarch y y y

Linux | 探索 Linux 信号机制:信号的产生和自定义捕捉

信号是 Linux 操作系统中非常重要的进程控制机制&#xff0c;用来异步通知进程发生某种事件。理解信号的产生、阻塞、递达、捕捉等概念&#xff0c;可以帮助开发者更好地编写健壮的应用程序&#xff0c;避免由于未处理的信号导致程序异常退出。本文将带你从基础概念开始&#x…

利士策分享,自我和解:通往赚钱与内心富足的和谐之道

利士策分享&#xff0c;自我和解&#xff1a;通往赚钱与内心富足的和谐之道 在这个快节奏、高压力的时代&#xff0c;我们往往在追求物质财富的同时&#xff0c;忽略了内心世界的和谐与平衡。 赚钱&#xff0c;作为现代生活中不可或缺的一部分&#xff0c;它不仅仅是生存的手段…

【Godot4.3】胶囊形的偏移获取法

概述 之前用半圆弧拼接的方式求过胶囊形&#xff0c;在逐渐熟练使用Geometry2D的过程中&#xff0c;发现通过线段求端点是圆角类型的偏移多边形&#xff0c;获得的就是胶囊形。 所以我们有了第二种胶囊形求法。 测试代码 tool extends Node2D## 横向宽度 export var width:…

Java-数据结构-排序-(一) (。・ω・。)

文本目录&#xff1a; ❄️一、排序的概念及引用&#xff1a; ➷ 排序的概念&#xff1a; ➷ 常见的排序算法&#xff1a; ❄️二、插入排序的实现&#xff1a; ➷ 1、直接插入排序&#xff1a; ☞ 直接插入排序的基本思想&#xff1a; ☞ 直接插入排序的实现&#xff1a; ▶…

安全热点问题

安全热点问题 1.DDOS2.补丁管理3.堡垒机管理4.加密机管理 1.DDOS 分布式拒绝服务攻击&#xff0c;是指黑客通过控制由多个肉鸡或服务器组成的僵尸网络&#xff0c;向目标发送大量看似合法的请求&#xff0c;从而占用大量网络资源使网络瘫痪&#xff0c;阻止用户对网络资源的正…

HarmonyOS Next开发----使用XComponent自定义绘制

XComponent组件作为一种绘制组件&#xff0c;通常用于满足用户复杂的自定义绘制需求&#xff0c;其主要有两种类型"surface和component。对于surface类型可以将相关数据传入XComponent单独拥有的NativeWindow来渲染画面。 由于上层UI是采用arkTS开发&#xff0c;那么想要…

【医疗大数据】基于 B2B 的医疗保健系统中大数据信息管理的安全和隐私问题分析

基于 B2B 的医疗保健系统中大数据信息管理的安全和隐私问题分析 1、引言 1-1 医疗大数据的特点 10 V模型&#xff1a;在医疗领域&#xff0c;大数据的特点被描述为10 V&#xff0c;包括价值&#xff08;Value&#xff09;、体量&#xff08;Volume&#xff09;、速度&#xf…

Leetcode Hot 100刷题记录 -Day16(旋转图像)

旋转图像 问题描述&#xff1a; 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1 输入&#xff1a;matrix [[1,2,3],[4,5,6]…

Python学习——【4.2】数据容器:tuple元组

文章目录 【4.2】数据容器&#xff1a;tuple元组一、元组的定义格式二、元组的特点三、元组的操作&#xff08;一&#xff09;常见操作&#xff08;二&#xff09;循环遍历 【4.2】数据容器&#xff1a;tuple元组 一、元组的定义格式 为什么需要元组 列表是可以修改的。如果想…

【网络安全】分享4个高危业务逻辑漏洞

未经许可,不得转载。 文章目录 正文逻辑漏洞1逻辑漏洞2逻辑漏洞3逻辑漏洞4其它正文 该目标程序是一家提供浏览器服务的公司,其核心功能是网页抓取和多账户登录操作,类似于浏览器中的隐身模式,但更加强大和高效。通过该平台,用户可以轻松管理并同时运行数百个隐身浏览器实…