【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 快速上手一 环境安装(默认已安装)二 远程仓库克隆到本地1 进入rep文件夹目录2 复制远程仓库地址3 git clone克隆仓库内容到本地4 修改后版本控制4.1 修改文件4.2 git status查看版本库文件状态4.3 git add将文件加入版本库暂存区…...
【【萌新的STM32学习-16中断的基本介绍1】】
萌新的STM32学习-16中断的基本介绍1 中断 什么是中断 中断是打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续执行,就叫中断 中断的作用 实时控制 : 就像对温度进行控制 故障控制 : 第一时间对突发情…...
ctfshow-红包题第二弹
0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 同样,先看一下有没有注释的内容,可以看到有一个cmd的入参 执行之后可以看到文件代码,可以看到也是eval,但是中间对大部分的字符串都进行了过滤,留下了…...
C# winform中无标题栏窗口如何实现鼠标拖动?
文章目录 在C#中,可以通过重写窗体的鼠标事件来实现无标题栏窗体的拖动。 具体步骤如下: 禁用窗体的默认标题栏:在窗体属性中设置FormBorderStyle为None。 重写鼠标事件:在窗体类中重写MouseDown、MouseMove和MouseUp事件。 定义变量存储鼠标点击时的坐标。 在MouseDown事…...
【操作系统】各平台定时器粒度
文章目录 WindowsLinux Windows 在 Windows 操作系统中,定时器的精度取决于系统时钟的精度。通常情况下,Windows 系统时钟的精度为 15.6 毫秒(即每秒钟约 64 次时钟中断),因此定时器的最小精度也是 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的初始值,然后将y的值赋值给x,再把媒介z的值赋值给y,达到排序 一个可重复使用的排序程序 第一种 function s…...
【Spring Boot】使用Spring Boot进行transformer的部署与开发
Transformer是一个用于数据转换和处理的平台,使用Spring Boot可以方便地进行Transformer的部署与开发。 以下是使用Spring Boot进行Transformer部署与开发的步骤: 创建Spring Boot项目 可以使用Spring Initializr创建一个简单的Spring Boot项目。在创…...
Qt应用开发(基础篇)——富文本浏览器 QTextBrowser
一、前言 QTextBrowser类继承于QTextEdit,是一个具有超文本导航的富文本浏览器。 框架类 QFramehttps://blog.csdn.net/u014491932/article/details/132188655 滚屏区域基类 QAbstractScrollAreahttps://blog.csdn.net/u014491932/article/details/132245486 文…...
JDBC:更新数据库
JDBC:更新数据库 更新记录删除记录 为了更新数据库,您需要使用语句。但是,您不是调用executeQuery()方法,而是调用executeUpdate()方法。 可以对数据库执行两种类型的更新: 更新记录值删除记录 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…...
技术的巅峰演进:深入解析算力网络的多层次技术设计
在数字化时代的浪潮中,网络技术正以前所未有的速度演进,而算力网络作为其中的一颗明星,以其多层次的技术设计引领着未来的网络构架。本文将带您深入探索算力网络独特的技术之旅,从底层协议到分布式控制,为您呈现这一创…...
图像特征描述和人脸识别
CV_tutorial2 特征检测使用HOG实现行人检测Harris角点检测关键特征检测SIFT纹理特征 LBP算法 模板匹配人脸识别 特征检测 使用HOG实现行人检测 HOG方向梯度直方图 实现过程: 灰度化(为了去掉颜色、光照对形状的影响);采用Gamma校正法对输…...
浅谈Lua协程和函数的尾调用
前言 虽然不经常用到协程,但是也不能谈虎色变。同时,在有些场景,协程会起到一种不可比拟的作用。所以,了解它,对于一些功能,也会有独特的思路和想法。 协程 概念 关于进程和线程的概念就不多说。 那么…...
【VS Code插件开发】状态栏(五)
🐱 个人主页:不叫猫先生,公众号:前端舵手 🙋♂️ 作者简介:前端领域优质作者、阿里云专家博主,共同学习共同进步,一起加油呀! 📢 资料领取:前端…...
睿趣科技:抖音开网店要怎么找货源
在当今数字化的时代,电商平台的兴起为越来越多的人提供了开设网店的机会,而抖音作为一个充满活力的短视频平台,也为创业者提供了广阔的发展空间。然而,对于许多初次涉足电商领域的人来说,找到合适的货源却是一个重要的…...
表和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无连接,速度快,安全性低,适合高速传输、实时广播通信等。 2.TCP面向连接,速度慢,安全性高,适合传输质量要求高、大文件等的传输,比如邮件发送等。 (还…...
mysql数据库和数据表
常用的数据类型: int : 整型 用于定义整数类型的数据float : 单精度浮点4字节32位 准确表示到小数点后六位.double :双精度浮点8字节64位char :固定长度的字符类型 用于定义字符类型数据varchar :可变长度的字符类…...
MySQL执行更新的流程
一、加载缓存数据 引擎要执行更新语句的时候 ,比如对“id10”这一行数据,他其实会先将“id10”这一行数据看看是否在缓冲池里,如果不在的话,那么会直接从磁盘里加载到缓冲池里来,而且接着还会对这行记录加独占锁。 二…...
要获取 PHP 中当前时间的前一天、本周、本月、本季度和本年,可以使用 PHP 的内置日期和时间函数。
要获取 PHP 中当前时间的前一天、本周、本月、本季度和本年,可以使用 PHP 的内置日期和时间函数。下面是一些示例代码来帮助你实现这些功能: php // 获取当前时间的前一天 $yesterday date(Y-m-d, strtotime(-1 day));// 获取本周的开始日期和结束日期…...
java八股文面试[java基础]——如何实现不可变的类
知识来源: 【23版面试突击】如何实现不可变的类?_哔哩哔哩_bilibili 【2023年面试】怎样声明一个类不会被继承,什么场景下会用_哔哩哔哩_bilibili...
juc基础(四)
目录 一、ThreadPool 线程池 1、参数说明 2、拒绝策略 3、线程池种类 (1)newCachedThreadPool(常用) (2)newFixedThreadPool(常用) (3)newSingleThreadExecutor(常用) (4)ne…...
C++智能指针weak_ptr的作用
当使用std::shared_ptr时,循环引用可能会导致资源泄漏的问题。下面是一个简单的示例,展示了循环引用导致资源泄漏的情况: #include <iostream> #include <memory>class A; class B;class A { public:std::shared_ptr<B> b…...
lintcode 344 · 歌曲时间【背包问题,动态规划】
题目链接,描述 https://www.lintcode.com/problem/344/ 给定长度为N的正整数数组song代表N首歌的时间 请你任选其中若干首播放,在满足开始播放最后一首歌的时间小于M的情况下求播放歌曲的最长时间 每首歌只能被播放一次 你可以任意指定播放顺序1 \leq …...
Qt应用开发(基础篇)——对话框窗口 QDialog
一、前言 QDialog类继承于QWidget,是Qt基于对话框窗口(消息窗口QMessageBox、颜色选择窗口QColorDialog、文件选择窗口QFileDialog等)的基类。 QDialog窗口是顶级的窗口,一般情况下,用来当做用户短期任务(确认、输入、选择)或者和用户交流(提…...
Linux系统:CentOS 7 CA证书服务器部署
目录 一、理论 1.CA认证中心 2.CA证书服务器部署 二、实验 1. CA证书服务器部署 三、总结 一、理论 1.CA认证中心 (1)概念 CA :CertificateAuthority的缩写,通常翻译成认证权威或者认证中心,主要用途是为用户…...
C++图形界面编程-MFC
C控制台程序是命令行黑框,如果要写一个图形界面,VS也提供了图形界面编程MFC。建项目的时候选如下选项: 类似于QT。 问:那么MFC项目的运行入口main()或WinMain()在哪里呢? 答:其实,在MFC应用程…...
知识扩展贴 圆越大,其圆接触的无知面就越多
CSDN 排行榜 https://blog.csdn.net/rank/list/total?spm1001.2014.3001.5476 顺其自然~_-CSDN博客...
怎么把pdf转换成jpg格式?
怎么把pdf转换成jpg格式?在我们日常的办公过程中,PDF文件是一个经常被使用来传输文件的格式。它能够确保我们的文件内容不会混乱,并以更加完美的方式呈现出来。然而,PDF文件也存在一些缺陷。例如,它无法直接编辑&#…...
Android SDK 上手指南||第六章 用户交互
第六章 用户交互 在这篇教程中,我们将对之前所添加的Button元素进行设置以实现对用户点击的检测与响应。为了达成这一目标,我们需要在应用程序的主 Activity类中略微涉及Java编程内容。如果大家在Java开发方面的经验不太丰富也没必要担心,只…...
新郑做网站推广/打开百度一下的网址
本文讲三种content-type以及在Jmeter中对应的参数输入方式 第一部分:目前工作中涉及到的content-type 有三种: content-type:在Request Headers里,告诉服务器我们发送的请求信息是哪种格式的。 1 content-type:application/x-www-…...
自学网站查分数/长春最新发布信息
课程描述 这门课是对自然语言处理(NLP)详细介绍,自然语言处理是对能够用人类语言处理、理解或交流的计算系统的研究。该课程涵盖了基本方法,主要是机器学习和深度学习,用于整个自然语言处理领域,以及一套历史和当代的自然语言处理…...
wordpress皮肤下载/博客网站注册
一、简介 Oracle权限分为系统权限和对象权限。 1、系统权限 注意:系统权限不支持级联回收,所以你需要使用sysdba一个个的回收。 2、对象权限 注:对象权限支持级联回收,系统权限不支持级联回收 1、查询oracle中的所有的权限,必须是sysdba才能进行查询 select * from system_priv…...
90设计网站真实稿费/如何做免费网站推广
在真正的生产大数据环境中,存储管理是DBA的主要工作之一,比如生产系统上表空间的监控,当一个表空间满或者使用率过高时,可能需要DBA添加一块磁盘到操作系统中,然后再在新加的磁盘上添加数据文件。如果这个操作作用的环…...
wordpress登陆可见插件/整站优化外包服务
C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。 内存映射文件对于托管世界的开发人员来说似乎很陌生,但它…...
网站导航如何用响应式做/google网站
、1 向量1起点在向量2左侧,终点在左侧;向量2起点在向量1右侧,终点在右侧 2 向量1起点在向量2右侧,终点在右侧;向量2起点在向量1左侧,终点在左侧 3 向量1起点在向量2右侧,终点在左侧;…...