当前位置: 首页 > news >正文

【git进阶使用】 告别只会git clone 学会版本控制 ignore筛选 merge冲突等进阶操作

git使用大全

  • 基本介绍
  • git 快速上手
    • 一 环境安装(默认已安装)
    • 二 远程仓库克隆到本地
      • 1 进入rep文件夹目录
      • 2 复制远程仓库地址
      • 3 git clone克隆仓库内容到本地
      • 4 修改后版本控制
        • 4.1 修改文件
        • 4.2 git status查看版本库文件状态
        • 4.3 git add将文件加入版本库暂存区
        • 4.4 git commit -m "修改1"将修改保存到本地仓库
        • 4.5 git push 推送到远程仓库
  • 可能会遇到的问题
    • 如何配置账户信息?
    • 关于输入密码(认证信息错误)
    • 新建账户 push
      • 查看仓库统计信息
      • 设置用户名和邮箱地址
        • 1 添加
        • 2 修改
        • 3 删除
        • 4 查看
    • 三 未创建远程仓库后对本地文件版本控制
  • 参考

基本介绍

本人之前使用git没有展开系统学习,只会简单的git clone和push、pull绑定公钥、创建账户等入门操作,对于版本控制回溯,.ignore过滤,多人协同开发merge,创建dev和main开发和产品分支等工作中常用的场景功能不太熟悉,所以记录一下自己的进阶学习。

git 快速上手

本来想先介绍一下git的远程仓库和本地仓库上传,怕一上来太多大道理直接劝退了,还是直接开干,爬代码吧!学会怎么cv后再回过头来看会简单许多。

一 环境安装(默认已安装)

首先默认大家都安装好git环境了,没有安装的小伙伴直接搜个教程安装就好了,安装之后cmd输入git有这个界面就表示成功了。桌面右键也会有git bash
在这里插入图片描述
在这里插入图片描述

二 远程仓库克隆到本地

桌面有一个rep空文件夹,现在需要把gitee远程仓库克隆到此文件夹下

1 进入rep文件夹目录

右键目录 选择 Git Bash
在这里插入图片描述
进入到此界面
在这里插入图片描述

2 复制远程仓库地址

在这里插入图片描述

3 git clone克隆仓库内容到本地

输入 git clone [仓库地址]
显示done 100% 表示克隆成功。

查看目录结构
在这里插入图片描述

打开rep文件夹查看变化,此时文件夹下多了git-learn文件夹,就是clone下来的仓库,和仓库文件结构相比多了一个.git文件夹。
在这里插入图片描述
.git文件夹就是用来实现版本控制的关键,具体细节可以参考官方文档。
在这里插入图片描述
此时你就可以愉快的更改代码了

4 修改后版本控制

4.1 修改文件

新增了a.txt 文件,并在文件中写入 a.txt
在这里插入图片描述

4.2 git status查看版本库文件状态

git status表示版本库文件的修改状态

  • 1 新增文件的状态
    在这里插入图片描述
    下面是对指令的详细翻译,为什么我要分别翻译一下?因为对于初学者这个时候就需要了解一下,版本追踪,分支,远程仓库,commit等概念了。这里可以不必深究,知道有这个东西就行,之前我也只是不求甚解会用就行。
On branch master  表示在master分支
Your branch is up to date with 'origin/master'. 
origin远程仓库下的master分支
Untracked files:  未进行版本追踪文件(use "git add <file>..." to include in what will be committed)    
使用“git add <file>...”包含要提交的内容a.txt 
nothing added to commit but untracked files present (use "git add" to track)没有添加任何内容到提交,但存在未跟踪的文件(使用“git add”来跟踪)

显示 a.txt为红色,表示未进行版本控制

4.3 git add将文件加入版本库暂存区

在这里插入图片描述

根据提示使用git add添加本地文件到暂存区,这里稍微解释一下暂存区的概念,git进行版本控制分为了 远程仓库和本地仓库,我们进行commit操作是将文件先上传到本地仓库,然后再上传到远程仓库。
在这里插入图片描述
简而言之,即暂存区Stage建立了文件和.git/objects目录下的对象实体之间的映射关系,只是一个简单的索引文件而已。指的是是 .git/index文件

  • 注意区分 暂存区和本地仓库的关系

可以参考一下大佬的图解

在这里插入图片描述
在这里插入图片描述

带思维导图
Git 命令行操作 https://zhuanlan.zhihu.com/p/362100222

另一个大佬的图解
在这里插入图片描述
来源:https://zhuanlan.zhihu.com/p/263050507

4.4 git commit -m "修改1"将修改保存到本地仓库

直接使用git commit会打开vm编辑器,不太熟悉的小伙伴可能又懵逼了。

1 按 i 进入插入模式,在第一行输入想要的说明
2 按Esc退出插入模式后
3 输入:wq 保存退出
4 退出不了输入:wq! (!表示强制保存退出)

更多vm语法自己可以去官网深入学习
在这里插入图片描述
所以建议初学者使用git commit -m "修改信息"的方式,再冒号内直接修改信息, -m表示message的意思。

再次输入 git status查看版本控制状态,显示nothing to commit 表示都已经进行了版本控制,说明没有文件可以进行版本控制,修改都已经提交到本地仓库了。
在这里插入图片描述

4.5 git push 推送到远程仓库

git push 推送修改到远程仓库
so easy啊
下图就表示推送成功啦
在这里插入图片描述
git remote [选项]
作用:设置或读取远程仓库相关的内容

使用git remote -v 查看远程仓库信息

查看远程仓库变化
在这里插入图片描述
可以看到添加进来了a.txt 并且显示了备注信息。

可能会遇到的问题

如何配置账户信息?

由于我之前已经配置好了gitee账户信息,很多小伙伴可能没有,就会出现报错

控制面板下搜凭据管理器 找到gitee账号信息,删除账户信息
在这里插入图片描述
此时修改a.txt后重新提交 看看报错。
在这里插入图片描述
git add .

“.” 表示本目录,会自动找被修改过的文件

在这里插入图片描述
可以看到commit之后push会弹出需要我输入gitee账户信息的操作,输入正确的账号密码之后
在这里插入图片描述
显示push成功
在这里插入图片描述
此时凭据管理器会把gitee账号信息长期保存,之后push都不用重新输入了!!!牛逼

关于输入密码(认证信息错误)

进入凭据管理器,修改账户信息,账号或者密码随便加个东西。重新push看看报错
在这里插入图片描述
显示账号或者密码错误,此时只需要重新改成正确的就行了

新建账户 push

查看仓库统计信息

进入仓库/统计 可以看到只有一个用户提交信息
在这里插入图片描述
新建一个用户重新push
git config -h 查看config
-h表示help
在这里插入图片描述

  • 配置文件等级:
  • global 用户级
  • system 系统级
  • local 项目级

这里我们使用local,配置只对当前库有效的角色,对于很多库多角色使用时很有用。

设置用户名和邮箱地址

新建一个用户alan重新提交代码 ,因为没有被修改,所以没有东西被提交。

切换用户:git config --local user.name “xxx”
在这里插入图片描述
查看用户信息
在这里插入图片描述

编辑a.txt 进行第三次修改
在这里插入图片描述
git push到远程仓库
在这里插入图片描述

查看远程仓库统计信息
在这里插入图片描述
此时提交信息新增了’alan’
我有点不顺眼这两个冒号,修改成alan,因为之前是双引号"alan" 所以用户名为’alan’

使用如下指令进行修改用户名然后查看用户名

git config --local --replace user.name 'alan'
git config user.name

在这里插入图片描述
切换账户为,第四次修改a.txt后再push
在这里插入图片描述
git界面
在这里插入图片描述
查看仓库统计信息
在这里插入图片描述
码飞用户进行了第四次提交

1 添加

git config --local user.name ‘abc’
git config --local user.email ‘abc@xxx.com’

2 修改

(1)覆盖的形式

 git config --global user.name "yourName"git config --global user.email "your@email.com"

(2)替换的形式

git config --global --replace-all user.name "yourName" 
git config --global --replace-all user.email "your@email.com"

3 删除

git config --global --unset user.name "yourName"
git config --global --unset user.email "your@email.com"

4 查看

(1)查看所有

git config --list

(2)查看指定信息

git config user.name
git config user.email

三 未创建远程仓库后对本地文件版本控制

场景: 创建了本地文件,git未创建仓库
在这里插入图片描述

参考

1 图解Git操作,一篇就够 https://zhuanlan.zhihu.com/p/263050507
2 Git 命令行操作 https://zhuanlan.zhihu.com/p/362100222
3 添加、修改、删除以及查看本地git的用户名和邮箱 https://blog.csdn.net/womeng2009/article/details/101124910
4 【忽略文件版本控制gitignore详解,git-ignore精讲教程,2022年最新git基础使用,git进阶教程,git必备技能】 https://www.bilibili.com/video/BV1EG4y1Z7WW/?share_source=copy_web&vd_source=fe6c23f6f1353ed1eff5d5e866171572

相关文章:

【git进阶使用】 告别只会git clone 学会版本控制 ignore筛选 merge冲突等进阶操作

git使用大全 基本介绍git 快速上手一 环境安装&#xff08;默认已安装&#xff09;二 远程仓库克隆到本地1 进入rep文件夹目录2 复制远程仓库地址3 git clone克隆仓库内容到本地4 修改后版本控制4.1 修改文件4.2 git status查看版本库文件状态4.3 git add将文件加入版本库暂存区…...

【【萌新的STM32学习-16中断的基本介绍1】】

萌新的STM32学习-16中断的基本介绍1 中断 什么是中断 中断是打断CPU执行正常的程序&#xff0c;转而处理紧急程序&#xff0c;然后返回原暂停的程序继续执行&#xff0c;就叫中断 中断的作用 实时控制 &#xff1a; 就像对温度进行控制 故障控制 &#xff1a; 第一时间对突发情…...

ctfshow-红包题第二弹

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 同样&#xff0c;先看一下有没有注释的内容&#xff0c;可以看到有一个cmd的入参 执行之后可以看到文件代码&#xff0c;可以看到也是eval&#xff0c;但是中间对大部分的字符串都进行了过滤&#xff0c;留下了…...

C# winform中无标题栏窗口如何实现鼠标拖动?

文章目录 在C#中,可以通过重写窗体的鼠标事件来实现无标题栏窗体的拖动。 具体步骤如下: 禁用窗体的默认标题栏:在窗体属性中设置FormBorderStyle为None。 重写鼠标事件:在窗体类中重写MouseDown、MouseMove和MouseUp事件。 定义变量存储鼠标点击时的坐标。 在MouseDown事…...

【操作系统】各平台定时器粒度

文章目录 WindowsLinux Windows 在 Windows 操作系统中&#xff0c;定时器的精度取决于系统时钟的精度。通常情况下&#xff0c;Windows 系统时钟的精度为 15.6 毫秒&#xff08;即每秒钟约 64 次时钟中断&#xff09;&#xff0c;因此定时器的最小精度也是 15.6 毫秒。但是&a…...

抽象又有点垃圾的JavaScript

常数的排序 let x 10;let y 20;let z;if (x < y) {z x;x y;y z;}console.log(x, y);//x 20 ,y 10 通过一个媒介来继承x的初始值&#xff0c;然后将y的值赋值给x&#xff0c;再把媒介z的值赋值给y&#xff0c;达到排序 一个可重复使用的排序程序 第一种 function s…...

【Spring Boot】使用Spring Boot进行transformer的部署与开发

Transformer是一个用于数据转换和处理的平台&#xff0c;使用Spring Boot可以方便地进行Transformer的部署与开发。 以下是使用Spring Boot进行Transformer部署与开发的步骤&#xff1a; 创建Spring Boot项目 可以使用Spring Initializr创建一个简单的Spring Boot项目。在创…...

Qt应用开发(基础篇)——富文本浏览器 QTextBrowser

一、前言 QTextBrowser类继承于QTextEdit&#xff0c;是一个具有超文本导航的富文本浏览器。 框架类 QFramehttps://blog.csdn.net/u014491932/article/details/132188655 滚屏区域基类 QAbstractScrollAreahttps://blog.csdn.net/u014491932/article/details/132245486 文…...

JDBC:更新数据库

JDBC&#xff1a;更新数据库 更新记录删除记录 为了更新数据库&#xff0c;您需要使用语句。但是&#xff0c;您不是调用executeQuery()方法&#xff0c;而是调用executeUpdate()方法。 可以对数据库执行两种类型的更新&#xff1a; 更新记录值删除记录 executeUpdate()方…...

如何自定义iview树形下拉内的内容

1.使用render函数给第一层父级定义 2. 使用树形结构中的render函数来定义子组件 renderContent(h, {root, node, data}) {return data.children.length0? h(span, {style: {display: inline-block,width: 400px,lineHeight: 32px}}, [h(span, [h(Icon, {type: ios-paper-outli…...

技术的巅峰演进:深入解析算力网络的多层次技术设计

在数字化时代的浪潮中&#xff0c;网络技术正以前所未有的速度演进&#xff0c;而算力网络作为其中的一颗明星&#xff0c;以其多层次的技术设计引领着未来的网络构架。本文将带您深入探索算力网络独特的技术之旅&#xff0c;从底层协议到分布式控制&#xff0c;为您呈现这一创…...

图像特征描述和人脸识别

CV_tutorial2 特征检测使用HOG实现行人检测Harris角点检测关键特征检测SIFT纹理特征 LBP算法 模板匹配人脸识别 特征检测 使用HOG实现行人检测 HOG方向梯度直方图 实现过程&#xff1a; 灰度化&#xff08;为了去掉颜色、光照对形状的影响&#xff09;;采用Gamma校正法对输…...

浅谈Lua协程和函数的尾调用

前言 虽然不经常用到协程&#xff0c;但是也不能谈虎色变。同时&#xff0c;在有些场景&#xff0c;协程会起到一种不可比拟的作用。所以&#xff0c;了解它&#xff0c;对于一些功能&#xff0c;也会有独特的思路和想法。 协程 概念 关于进程和线程的概念就不多说。 那么…...

【VS Code插件开发】状态栏(五)

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;前端领域优质作者、阿里云专家博主&#xff0c;共同学习共同进步&#xff0c;一起加油呀&#xff01; &#x1f4e2; 资料领取&#xff1a;前端…...

睿趣科技:抖音开网店要怎么找货源

在当今数字化的时代&#xff0c;电商平台的兴起为越来越多的人提供了开设网店的机会&#xff0c;而抖音作为一个充满活力的短视频平台&#xff0c;也为创业者提供了广阔的发展空间。然而&#xff0c;对于许多初次涉足电商领域的人来说&#xff0c;找到合适的货源却是一个重要的…...

表和Json的相互操作

目录 一、表转Json 1.使用 for json path 2.如何返回单个Json 3.如何给返回的Json增加一个根节点呢 4.如何给返回的Json增加上一个节点 二、对Json基本操作 1.判断给的字符串是否是Json格式 2.从 JSON 字符串中提取标量值 3. 从 JSON 字符串中提取对象或数组 4. 更…...

每日后端面试5题 第八天

1.UDP和TCP协议的区别 1.UDP无连接&#xff0c;速度快&#xff0c;安全性低&#xff0c;适合高速传输、实时广播通信等。 2.TCP面向连接&#xff0c;速度慢&#xff0c;安全性高&#xff0c;适合传输质量要求高、大文件等的传输&#xff0c;比如邮件发送等。 &#xff08;还…...

mysql数据库和数据表

常用的数据类型: int &#xff1a; 整型 用于定义整数类型的数据float &#xff1a; 单精度浮点4字节32位 准确表示到小数点后六位.double &#xff1a;双精度浮点8字节64位char &#xff1a;固定长度的字符类型 用于定义字符类型数据varchar &#xff1a;可变长度的字符类…...

MySQL执行更新的流程

一、加载缓存数据 引擎要执行更新语句的时候 &#xff0c;比如对“id10”这一行数据&#xff0c;他其实会先将“id10”这一行数据看看是否在缓冲池里&#xff0c;如果不在的话&#xff0c;那么会直接从磁盘里加载到缓冲池里来&#xff0c;而且接着还会对这行记录加独占锁。 二…...

要获取 PHP 中当前时间的前一天、本周、本月、本季度和本年,可以使用 PHP 的内置日期和时间函数。

要获取 PHP 中当前时间的前一天、本周、本月、本季度和本年&#xff0c;可以使用 PHP 的内置日期和时间函数。下面是一些示例代码来帮助你实现这些功能&#xff1a; php // 获取当前时间的前一天 $yesterday date(Y-m-d, strtotime(-1 day));// 获取本周的开始日期和结束日期…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

前端调试HTTP状态码

1xx&#xff08;信息类状态码&#xff09; 这类状态码表示临时响应&#xff0c;需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分&#xff0c;客户端应继续发送剩余部分。 2xx&#xff08;成功类状态码&#xff09; 表示请求已成功被服务器接收、理解并处…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法&#xff0c;由约翰冯诺伊曼在1945年提出。其核心思想包括&#xff1a; 分割(Divide)&#xff1a;将待排序数组递归地分成两个子…...