当前位置: 首页 > 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));// 获取本周的开始日期和结束日期…...

java八股文面试[java基础]——如何实现不可变的类

知识来源&#xff1a; 【23版面试突击】如何实现不可变的类&#xff1f;_哔哩哔哩_bilibili 【2023年面试】怎样声明一个类不会被继承&#xff0c;什么场景下会用_哔哩哔哩_bilibili...

juc基础(四)

目录 一、ThreadPool 线程池 1、参数说明 2、拒绝策略 3、线程池种类 &#xff08;1&#xff09;newCachedThreadPool(常用) &#xff08;2&#xff09;newFixedThreadPool(常用) &#xff08;3&#xff09;newSingleThreadExecutor(常用) &#xff08;4&#xff09;ne…...

C++智能指针weak_ptr的作用

当使用std::shared_ptr时&#xff0c;循环引用可能会导致资源泄漏的问题。下面是一个简单的示例&#xff0c;展示了循环引用导致资源泄漏的情况&#xff1a; #include <iostream> #include <memory>class A; class B;class A { public:std::shared_ptr<B> b…...

lintcode 344 · 歌曲时间【背包问题,动态规划】

题目链接&#xff0c;描述 https://www.lintcode.com/problem/344/ 给定长度为N的正整数数组song代表N首歌的时间 请你任选其中若干首播放&#xff0c;在满足开始播放最后一首歌的时间小于M的情况下求播放歌曲的最长时间 每首歌只能被播放一次 你可以任意指定播放顺序1 \leq …...

Qt应用开发(基础篇)——对话框窗口 QDialog

一、前言 QDialog类继承于QWidget&#xff0c;是Qt基于对话框窗口(消息窗口QMessageBox、颜色选择窗口QColorDialog、文件选择窗口QFileDialog等)的基类。 QDialog窗口是顶级的窗口&#xff0c;一般情况下&#xff0c;用来当做用户短期任务(确认、输入、选择)或者和用户交流(提…...

Linux系统:CentOS 7 CA证书服务器部署

目录 一、理论 1.CA认证中心 2.CA证书服务器部署 二、实验 1. CA证书服务器部署 三、总结 一、理论 1.CA认证中心 &#xff08;1&#xff09;概念 CA &#xff1a;CertificateAuthority的缩写&#xff0c;通常翻译成认证权威或者认证中心&#xff0c;主要用途是为用户…...

C++图形界面编程-MFC

C控制台程序是命令行黑框&#xff0c;如果要写一个图形界面&#xff0c;VS也提供了图形界面编程MFC。建项目的时候选如下选项&#xff1a; 类似于QT。 问&#xff1a;那么MFC项目的运行入口main()或WinMain()在哪里呢&#xff1f; 答&#xff1a;其实&#xff0c;在MFC应用程…...

知识扩展贴 圆越大,其圆接触的无知面就越多

CSDN 排行榜 https://blog.csdn.net/rank/list/total?spm1001.2014.3001.5476 顺其自然~_-CSDN博客...

怎么把pdf转换成jpg格式?

怎么把pdf转换成jpg格式&#xff1f;在我们日常的办公过程中&#xff0c;PDF文件是一个经常被使用来传输文件的格式。它能够确保我们的文件内容不会混乱&#xff0c;并以更加完美的方式呈现出来。然而&#xff0c;PDF文件也存在一些缺陷。例如&#xff0c;它无法直接编辑&#…...

Android SDK 上手指南||第六章 用户交互

第六章 用户交互 在这篇教程中&#xff0c;我们将对之前所添加的Button元素进行设置以实现对用户点击的检测与响应。为了达成这一目标&#xff0c;我们需要在应用程序的主 Activity类中略微涉及Java编程内容。如果大家在Java开发方面的经验不太丰富也没必要担心&#xff0c;只…...

新郑做网站推广/打开百度一下的网址

本文讲三种content-type以及在Jmeter中对应的参数输入方式 第一部分&#xff1a;目前工作中涉及到的content-type 有三种&#xff1a; content-type&#xff1a;在Request Headers里&#xff0c;告诉服务器我们发送的请求信息是哪种格式的。 1 content-type:application/x-www-…...

自学网站查分数/长春最新发布信息

课程描述 这门课是对自然语言处理(NLP)详细介绍&#xff0c;自然语言处理是对能够用人类语言处理、理解或交流的计算系统的研究。该课程涵盖了基本方法&#xff0c;主要是机器学习和深度学习&#xff0c;用于整个自然语言处理领域&#xff0c;以及一套历史和当代的自然语言处理…...

wordpress皮肤下载/博客网站注册

一、简介 Oracle权限分为系统权限和对象权限。 1、系统权限 注意:系统权限不支持级联回收,所以你需要使用sysdba一个个的回收。 2、对象权限 注:对象权限支持级联回收,系统权限不支持级联回收 1、查询oracle中的所有的权限,必须是sysdba才能进行查询 select * from system_priv…...

90设计网站真实稿费/如何做免费网站推广

在真正的生产大数据环境中&#xff0c;存储管理是DBA的主要工作之一&#xff0c;比如生产系统上表空间的监控&#xff0c;当一个表空间满或者使用率过高时&#xff0c;可能需要DBA添加一块磁盘到操作系统中&#xff0c;然后再在新加的磁盘上添加数据文件。如果这个操作作用的环…...

wordpress登陆可见插件/整站优化外包服务

C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 节点通信存在两种模型&#xff1a;共享内存&#xff08;Shared memory&#xff09;和消息传递&#xff08;Messages passing&#xff09;。 内存映射文件对于托管世界的开发人员来说似乎很陌生&#xff0c;但它…...

网站导航如何用响应式做/google网站

、1 向量1起点在向量2左侧&#xff0c;终点在左侧&#xff1b;向量2起点在向量1右侧&#xff0c;终点在右侧 2 向量1起点在向量2右侧&#xff0c;终点在右侧&#xff1b;向量2起点在向量1左侧&#xff0c;终点在左侧 3 向量1起点在向量2右侧&#xff0c;终点在左侧&#xff1b;…...