git学习笔记(总结了常见命令与学习中遇到的问题和解决方法)
前言
最近学习完git,学习过程中也遇到了很多问题,这里给大家写一篇总结性的博客,主要大概讲述git命令和部分难点问题(简单的知识点这里就不再重复讲解了)
一.git概述
1.1什么是git
Git是一个分布式的版本控制软件。
- 软件。
- 版本控制,类似于毕业论文、写文案、视频剪辑等,需要反复修改和保留原历史数据
- 分布式
- 文件夹拷贝
- 本地版本控制
- 集中式版本控制
- 分布式版本控制
1.2 为什么要做版本控制
要保留之前所有的版本,以便回滚和修改。
1.3 安装git
安装地址:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
windows下(Mac下同理)

再进行点击即可下载

安装一直点下一步即可。
1.4 git配置环境变量
环境变量配置参考之前写的博客: git配置环境变量
二.git常用命令
2.1 基础命令
| 命令 | 作用 |
|---|---|
| git init | 初始化本地库 |
| git status | 查看本地库状态 |
| git add 文件名 | 把该文件添加到暂存区 |
| git add . | 把所有文件添加到暂存区 |
| git config --global user.name “用户名” | 设置用户名(全局配置,一次即可) |
| git config --global user.email “邮箱” | 设置用户邮箱(全局配置,一次即可) |
| git commit -m ‘描述信息’ | 生成版本信息并提交到本地库 |
| git log | 查看版本记录 |
| git reflog | 查看历史版本记录 |
| git reset --hard 版本号 | 回滚操作(可以回到定义的任意版本的状态) |
2.2 分支操作
| 命令 | 作用 |
|---|---|
| git branch 分支名 | 创建分支 |
| git branch | 查看当前分支 |
| git checkout 分支名 | 切换分支 |
| git merge 分支名 | 把指定的分支合并到当前分支上 |
| git rebase 分支名 | 保持代码提交整洁(变基) |
| git log --graph | 记录图形展示 |
| git log --graph --pretty=format:“%h %s” | 记录图形展示(简略版) |
| git tag -a v1.0[自己写Tag信息] -m ‘版本介绍’ | 本地创建Tag信息 |
| git tag -d v1.0 | 删除Tag |
| git checkout v1.0 | 切换tag |
2.3 将项目推到Github命令
| 命令 | 作用 |
|---|---|
| git remote add origin 远程仓库地址 | 给远程仓库起别名(仅一次) |
| git remote -v | 查看当前所有远程地址别名 |
| git push -u origin 分支名 | 推送本地分支上的内容到远程仓库 |
| git clone 远程仓库地址 | 将远程仓库的内容克隆到本地(第一次) |
| git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
| git config --global http.sslVerify false | 临时禁用 SSL 验证(不安全) |
| git config --global http.sslVerify true | 重新启用 SSL 验证 |
| git push origin --tags | 将本地Tag信息推送到远程仓库 |
| git pull origin --tags | 更新本地tag版本信息 |
三.git用法讲解
3.1 git 打开使用
打开项目所在文件夹,右键找到git bash打开

3.2 git 工作流程图

3.3 git merge 分支名 的用法
git merge 分支名
该命令用于分支合并,但有可能会出现冲突,需要手动修改冲突文件来解决,或者使用Beyond Compare来解决(Beyond Compare的配置方法在后面讲)
3.4 git log --graph 与 git log --graph --pretty=format:“%h %s”
这两个命令都是进行图形化显示,效果如下(可以查看所有版本和分支情况):
git log --graph

git log --graph --pretty=format:"%h %s"

3.5 配置文件
-
项目配置文件—用户配置(每个项目都需要进行配置,不推荐)
### 配置文件位置:vim .git/config git config --local user.name "用户名" git config --local user.email "邮箱" -
全局配置文件(只需配置一次,全电脑项目之后都会使用该配置,推荐)
### 配置文件位置:~/.gitconfig[当前用户所在目录] git config --global user.name "用户名" git config --global user.email "邮箱" -
系统配置文件(给系统进行配置,需要root权限)
### 配置文件位置:/etc/.gitconfig ### 需要root权限 git config --global user.name "用户名" git config --global user.email "邮箱"
3.6 免密登录
-
URL中体现
# 原来的地址 # https://github.com/Caesar-Victory/Stacer.git # 修改的地址 # https://用户名:密码@github.com/Caesar-Victory/Stacer.git git remote add origin https://用户名:密码@github.com/Caesar-Victory/Stacer.git git push origin master # 或者修改本地配置文件 -
SSH实现
# 生成公钥和私钥(默认生成在~/.ssh) ssh-keygen -r ssa # 拷贝公钥的内容并且设置到Github中 # 在git本地中配置SSH地址 git remote add origin git@github.com:Caesar-Victory/Stacer.git -
git自动管理凭证(git会自动对内容进行管理操作,用户无需进行多余操作)
3.7 Git忽略文件
让Git不再管理当前目录下的某些文件
### vim 编辑
vim .gitignore文件内写入文件名和后缀,跨行书写*.h凡此后缀,均不管理.gitignore 免除对文件本身的管理files/忽略该目录所有文件!a.h 除该文件以外*.py[c|a|b] 同时忽略.pyc/.pya.pyb
### 再次git status
git status
更多规则参考:https://github.com/github/gitignore
意义:忽略关键文档,防止泄密
3.8 任务管理相关(GitHub,了解即可)
-
issues 文档及任务管理
### 标签 9 labels#bug something isn't working#documentation lmprovements or additions to documentation#duplicate This issue or pull request already exists#enhancement New feature or request#good first issue Good for newcomers#help wanted Extra attention is needed#invalid This doesn't seem right#question Further information is requested#wontfix This will not be worked on
-
wiki 项目文档

四.学习过程中会遇到的问题与解决方法
4.1 刚开始使用git时(没有用户身份和邮箱)
问题描述:
Tiamo@LAPTOP-G0EQAN1F MINGW64 /d/新建文件夹 (master)
$ git commit -m 'v1'
Author identity unknown*** Please tell me who you are.Rungit config --global user.email "you@example.com"git config --global user.name "Your Name"to set your account's default identity.
Omit --global to set the identity only in this repository.fatal: unable to auto-detect email address (got 'Tiamo@LAPTOP-G0EQAN1F.(none)')
解决方法:
git config --global user.email "your_email@example.com"
git config --global user.name "Your Name"
4.2 SSL证书验证问题(该问题会在远程链接仓库时会遇到)
问题描述:
Tiamo@LAPTOP-G0EQAN1F MINGW64 /d/新建文件夹 (master)
$ git push -u origin master
fatal: unable to access 'https://github.com/1273055646/dbhot.git/': SSL certificate problem: unable to get local issuer certificate
解决方法:
遇到这种问题基本都是自己做项目或者学习时会遇到,这里可以用临时禁用SSL 验证来解决,但是该方法有安全隐患(会使你的连接容易受到中间人攻击)不过对于自己学习的过程中使用来说并不影响。
# 该方法是全局(针对本地所有项目)
git config --global http.sslVerify false
# 该办法只针对当前仓库
git config http.sslVerify false
之后想要再恢复SSL 验证
git config --global http.sslVerify true
或
git config http.sslVerify true
4.3 BeyondCompare安装与永久免费使用
请参考之前写的博客:BeyondCompare安装(永久免费使用+全网最详细版)
4.4 git配置BeyondCompare解决冲突(无法用git打开BeyondCompare)
问题描述:

解决方法:
参考我之前写的博客: git配置BeyondCompare解决冲突(全网最细讲解,亲测有用,windows版本)
结尾
本篇博客主要对git的常见命令、各大疑难点和问题进行总结与梳理,希望对大家有所帮助,也欢迎大家留言或者私信学习git过程中遇到的问题,我也会对大家遇到的问题进行查阅与解答。
博主也是初学者,如有不到之处,欢迎大家批评指正!
相关文章:
git学习笔记(总结了常见命令与学习中遇到的问题和解决方法)
前言 最近学习完git,学习过程中也遇到了很多问题,这里给大家写一篇总结性的博客,主要大概讲述git命令和部分难点问题(简单的知识点这里就不再重复讲解了) 一.git概述 1.1什么是git Git是一个分布式的版本控制软件。…...
【计算机网络】TCP协议详解
欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 1、引言2、udp和tcp协议的异同3、tcp服务器3.1、接口认识3.2、服务器设计 4、tcp客户端4.1、客户端设计4.2、说明 5、再研Tcp服务端5.1、多进程版5.2、多线程版 5、守护进程化5.1、什么是守护进程5.2…...
2.3 大模型硬件基础:AI芯片(上篇) —— 《带你自学大语言模型》系列
本系列目录 《带你自学大语言模型》系列部分目录及计划,完整版目录见:带你自学大语言模型系列 —— 前言 第一部分 走进大语言模型(科普向) 第一章 走进大语言模型 1.1 从图灵机到GPT,人工智能经历了什么࿱…...
Java | Leetcode Java题解之第279题完全平方数
题目: 题解: class Solution {public int numSquares(int n) {if (isPerfectSquare(n)) {return 1;}if (checkAnswer4(n)) {return 4;}for (int i 1; i * i < n; i) {int j n - i * i;if (isPerfectSquare(j)) {return 2;}}return 3;}// 判断是否为…...
JS逆向高级爬虫
JS逆向高级爬虫 JS逆向的目的是通过运行本地JS的文件或者代码,以实现脱离他的网站和浏览器,并且还能拿到和浏览器加密一样的效果。 10.1、编码算法 【1】摘要算法:一切从MD5开始 MD5是一个非常常见的摘要(hash)逻辑. 其特点就是小巧. 速度快. 极难被破解. 所以,…...
基于Golang+Vue3快速搭建的博客系统
WANLI 博客系统 项目介绍 基于vue3和gin框架开发的前后端分离个人博客系统,包含md格式的文本编辑展示,点赞评论收藏,新闻热点,匿名聊天室,文章搜索等功能。 项目在线访问:http://bloggo.chat/ 访客账号…...
DVWA中命令执行漏洞细说
在攻击中,命令注入是比较常见的方式,今天我们细说在软件开发中如何避免命令执行漏洞 我们通过DVWA中不同的安全等级来细说命令执行漏洞 1、先调整DVWA的安全等级为Lower,调整等级在DVWA Security页面调整 2、在Command Injection页面输入127.0.0.1&…...
【YOLOv5/v7改进系列】引入中心化特征金字塔的EVC模块
一、导言 现有的特征金字塔方法过于关注层间特征交互而忽视了层内特征的调控。尽管有些方法尝试通过注意力机制或视觉变换器来学习紧凑的层内特征表示,但这些方法往往忽略了对密集预测任务非常重要的被忽视的角落区域。 为了解决这个问题,作者提出了CF…...
【QT】常用控件(概述、QWidget核心属性、按钮类控件、显示类控件、输入类控件、多元素控件、容器类控件、布局管理器)
一、控件概述 Widget 是 Qt 中的核心概念,英文原义是 “小部件”,此处也把它翻译为 “控件”。控件是构成一个图形化界面的基本要素。 像上述示例中的按钮、列表视图、树形视图、单行输入框、多行输入框、滚动条、下拉框都可以称为 “控件”。 Qt 作为…...
【Python】字母 Rangoli 图案
一、题目 You are given an integer N. Your task is to print an alphabet rangoli of size N. (Rangoli is a form of Indian folk art based on creation of patterns.) Different sizes of alphabet rangoli are shown below: # size 3 ----c---- --c-b-c-- c-b-a-b-c --…...
html+css 实现水波纹按钮
前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文…...
科技与占星的融合:AI 智能占星师
本文由 ChatMoney团队出品 在科技的前沿领域,诞生了一位独特的存在——AI占星师。它并非传统意义上的占星师,而是融合了先进的人工智能技术与神秘的占星学知识。 这能够凭借其强大的数据分析能力和精准的算法,对星辰的排列和宇宙的能量进行深…...
判断字符串,数组方法
判断字符串方法 在JavaScript中,可以使用typeof操作符来判断一个变量是否为字符串。 function isString(value) {return typeof value string; } 判断数组 在JavaScript中,typeof操作符并不足以准确判断一个变量是否为数组,因为typeof会…...
SpringBoot Vue使用Jwt实现简单的权限管理
为实现Jwt简单的权限管理,我们需要用Jwt工具来生成token,也需要用Jwt来解码token,同时需要添加Jwt拦截器来决定放行还是拦截。下面来实现: 1、gradle引入Jwt、hutool插件 implementation com.auth0:java-jwt:3.10.3implementatio…...
java中的多态
多态基础了解: 面向对象的三大特征:封装,继承,多态。 有了面向对象才有继承和多态,对象代表什么,就封装对应的数据,并提供数据对应的行为,可以把零散的数据和行为进行封装成一个整…...
【数据结构】:用Java实现链表
在 ArrayList 任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后搬移,时间复杂度为 O(n),效率比较低,因此 ArrayList 不适合做任意位置插入和删除比较多的场景。因此:java 集合中又引入了 LinkedList&…...
前端开发知识(三)-javascript
javascript是一门跨平台、面向对象的脚本语言。 一、引入方式 1.内部脚本:使用<script> ,可以放在任意位置,也可以有多个,一般是放在<body></body>的下方。 2.外部脚本:单独编写.js文件ÿ…...
Windows图形界面(GUI)-MFC-C/C++ - MFC绘图
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 MFC绘图 绘图基础 CPaintDC 实例代码 MFC绘图 绘图基础 设备上下文(Device Context, DC): 设备上下文是一个Windows GDI(图形设备接口)…...
51单片机-第五节-串口通信
1.什么是串口? 串口是通讯接口,实现两个设备的互相通信。 单片机自带UART,其中引脚有TXD发送端,RXD接收端。且电平标准为TTL(5V为1,0V为0)。 2.常见电平标准: (1)TTL电…...
【Linux常用命令】之df命令
Linux常用命令之df命令 文章目录 Linux常用命令之df命令常用命令之df背景介绍 总结 作者简介 听雨:一名在一线从事多年研发的程序员,从事网站后台开发,熟悉java技术栈,对前端技术也有研究,同时也是一名骑行爱好者。 D…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
电脑桌面太单调,用Python写一个桌面小宠物应用。
下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡,可以响应鼠标点击,并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
OPENCV图形计算面积、弧长API讲解(1)
一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积,这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能,常用的API…...
