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

news2024/11/15 15:47:14

前言

什么是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.coloradmin.cn/o/2141805.html

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

相关文章

openwrt wsdd模块介绍

wsdd简介 wsdd是一个实现Web服务发现主机守护进程的工具。这使得&#xff08;如Samba&#xff09;主机&#xff0c;像你的本地网络存储设备&#xff0c;能够被Windows这样的Web服务发现客户端找到。 目的 由于Windows不再支持NetBIOS发现&#xff0c;wsdd使用Web服务发现方法使…

密码学---easy_hash

题目出处&#xff1a;首页 - Bugku CTF ✨打开题目有两个文件 ✨打开flag.py后开始分析所给的代码 import hashlib # 导入 hashlib 模块&#xff0c;用于计算哈希值 from multiprocessing import Pool # 从 multiprocessing 模块导入 Pool 类&#xff0c;用于多进程处理d…

istio中如何使用serviceentry引入外部服务

假设需要引入一个外部服务&#xff0c;外部服务ip为10.10.102.90&#xff0c;端口为32033. 引入到istio中后&#xff0c;我想通过域名gindemo.test.ch:9090来访问这个服务。 serviceentry yaml内容如下&#xff1a; apiVersion: networking.istio.io/v1beta1 kind: ServiceEn…

Python 课程5-NumPy库

在数据处理和科学计算中&#xff0c;NumPy 是一个非常强大且基础的库。除了基本的创建数组功能之外&#xff0c;NumPy 提供了许多强大的函数和方法&#xff0c;用于执行高级的矩阵运算、统计分析、逻辑操作等。以下是一些常用且非常有用的 NumPy 指令&#xff0c;涵盖了创建数组…

STM32 BootLoader 刷新项目 (六) 获取帮助-命令0x52

STM32 BootLoader 刷新项目 (六) 获取帮助-命令0x52 在嵌入式MCU软件开发中&#xff0c;通过串口进行人机交互是非常常见且重要的操作方式。获取帮助的命令通常用来向用户展示所有支持的交互指令及其使用方法。详细介绍如下&#xff1a; 获取帮助命令的作用 用户友好性&#…

进程之信号

文章目录 进程信号中断的概念信号是异步事件Linux信号信号发生的来源信号的处理方式signal函数示例--使用signal函数对常见的信号进行捕获、执行默认操作、忽略三种方式处理 SIGCHLD信号示例--使用SIGCHLD信号来避免子进程退出 kill函数raise函数示例--使用kill函数给指定进程发…

基于python+django+vue的学生成绩管理系统

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

Java之线程篇四

目录 volatile关键字 volatile保证内存可见性 代码示例 代码示例2-&#xff08;volatile&#xff09; volatile不保证原子性 synchronized保证内存可见性 wait()和notify() wait()方法 notify() 理解notify()和notifyAll() wait和sleep的对比 volatile关键字 volati…

【C++ Primer Plus习题】16.3

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <string> #include <…

Datawhale------Tiny-universe学习笔记——Qwen(1)

1. Qwen整体介绍 对于一个完全没接触过大模型的小白来说&#xff0c;猛一听这个名字首先会一懵&#xff1a;Qwen是啥。这里首先解答一下这个问题。下面是官网给出介绍&#xff1a;Qwen是阿里巴巴集团Qwen团队研发的大语言模型和大型多模态模型系列。其实随着大模型领域的发展&a…

Linux服务器上安装git lfs命令

有时候&#xff0c;需要批量下载数据集时要用到git lfs命令 首先&#xff0c;使用pip install git-lfs安装&#xff0c;会发现使用时仍然提示&#xff1a;git: lfs is not a git command. See git --help. 这就意味着安装不成功。 因此&#xff0c;需要通过如下途径手动安装&a…

基于YOLOv5的农作物叶片病害识别系统

植物农作物叶片病虫害识别系统&#xff1a;农作物叶片病害AI检测与识别系统 源码 带UI界面说明视频 模型&#xff1a;yolov5 功能: 农作物叶片病害检测系统用于智能检测常见农作物叶片病害情况&#xff0c;自动化标注、记录和保存病害位置和类型&#xff0c;辅助作物病害防治以…

【Motion Forecasting】【摘要阅读】BANet: Motion Forecasting with Boundary Aware Network

BANet: Motion Forecasting with Boundary Aware Network 这项工作发布于2022年&#xff0c;作者团队来自于OPPO。这项工作一直被放在arxiv上&#xff0c;并没有被正式发表&#xff0c;所提出的方法BANet在2022年达到了Argoverse 2 test dataset上的SOTA水准。 Method BANet…

用Python解决综合评价问题_模糊综合评价,决策树与灰色关联分析

一&#xff1a;模糊综合评价 模糊综合评价是一种有效的处理不确定性和模糊性的评价方法&#xff0c;特别是在人才评价等领域。它允许我们综合考虑多个评价指标&#xff0c;并给出一个综合的评价结果。以下是利用模糊综合评价对人才进行评价的步骤&#xff1a; 确定评价指标&am…

进阶SpringBoot之异步任务、邮件任务和定时执行任务

SpringBooot 创建 Web 项目 异步任务&#xff1a; service 包下创建 AsyncService 类 Async 异步方法 Thread.sleep(3000) 停止三秒&#xff0c;捕获异常 package com.demo.task.service;import org.springframework.scheduling.annotation.Async; import org.springfram…

【MySQL】Windows下重启MySQL服务时,报错:服务名无效

1、问题描述 在终端中&#xff0c;停止、启动MySQL服务时报错&#xff1a;服务名无效 2、原因分析 1&#xff09;权限不够 如果是权限不够&#xff0c;会提示&#xff1a;系统错误5&#xff0c;拒绝访问。 2&#xff09;服务名错误 如果是服务名错误&#xff0c;会提示“…

第313题|解积分不等式题目的5种方法常用方法|武忠祥老师每日一题

解题思路&#xff1a;把多阶次积分和函数值联系起来&#xff0c;应该想到泰勒公式。 本题应该使用带有拉格朗日余项的泰勒公式&#xff1a; 方法一&#xff1a; 等式左右两边进行积分&#xff0c;右边第一项常数项不变&#xff0c;第二项&#xff08;x-1/2&#xff09;积完之…

macOS Sequoia 正式版(24A335)黑苹果/Mac/虚拟机系统镜像

“ 以下内容来自于黑果魏叔官网” 镜像特点 完全由黑果魏叔官方制作&#xff0c;针对各种机型进行默认配置&#xff0c;让黑苹果安装不再困难。系统镜像设置为双引导分区&#xff0c;全面去除clover引导分区&#xff08;如有需要&#xff0c;可以自行直接替换opencore分区文件为…

web安全测试入门

参考课程&#xff1a; 04-软件安全测试基础-网络协议基础-网络模型_哔哩哔哩_bilibili 1.软件安全测试概述 安全测试&#xff1a; 安全性测试指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程 导致软件出现安全问题的主要原因或根源是软件的安全漏洞 安全漏洞&#x…

网页交互模拟:模拟用户输入、点击、选择、滚动等交互操作

目录 一、理论基础 1.1 网页交互模拟的重要性 1.2 网页交互的基本原理 二、常用工具介绍 2.1 Selenium 2.2 Puppeteer 2.3 Cypress 2.4 TestCafe 三、实战案例 3.1 模拟用户输入 3.2 模拟用户点击 3.3 模拟用户选择 3.4 模拟滚动操作 四、最佳实践与优化 4.1 代…