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

git的学习与使用(笔记最全)

什么是git

Git是一种分布式版本控制系统,每个开发者都可以在自己的机器上拥有一个完整的仓库

特点

  • 断网也可以工作:没网的情况下,不会影响工作。
  • 对于未提交到远程库的代码可以随时撤销。
  • 可以查看历史提交记录,以及文件内容的修改记录

git的工作流程

  1. clone(克隆):从远程仓库中克隆代码到本地仓库
  2. checkout(检出):从本地仓库中检出一个仓库分支然后进行修订
  3. add(添加):在提交前先将代码提交到暂存区
  4. commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本
  5. fetch(抓取):从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少
  6. pull (拉取):从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
  7. push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

git的安装

git的下载链接,下载安装包,按照流程安装好就可以了

git的配置 

账号绑定

账号绑定 Your Name填写你的账号

git config --global user.name "Your Name"

邮箱的绑定

邮箱绑定 email@example.com填写你的邮箱

 git config --global user.email "email@example.com"

生成SSH公钥

生成SSH公钥 email@example.com填写远程仓库邮箱

ssh-keygen -t rsa -C "email@example.com"

查看SSH公钥并绑定远程仓库(gitee)

查看SSH公钥

cat ~/.ssh/id_rsa.pub

绑定到远程仓库Gitee中的SSH公钥

git的基本操作

获取本地仓库git init

  1. 进入项目目录中,点击右键打开Git bash窗口
  2. 执行命令git init
  3. 如果创建成功后可在文件夹下看到隐藏的.git目录。

了解工作区、暂存区、本地仓库的关系

  • 工作区:即个人克隆项目到本地后,项目所在的文件夹目录。
  • 暂存区:用于储存工作区中的变更(增删改等改动)的文件的地方。操作时使用git add会将本地所有的变更提交到暂存区中,是提交到仓库之前的缓存区。
  • 本地仓库:用于储存工作区和暂存区中提交上来的文件,使用git commit -m '提交内容的描述'

查看状态git status

  1. git status用来显示工作目录和暂存区的状态
  2. 未创建test.txt文件前使用git status查看会提示无需提交没有任何操作
  3. 创建文件后会提示有个未跟踪的文件test.txt
  4. 然后通过git add test.txt提交到暂存区,会显示新文件test.txt需要提交更改
  5. 使用git commit -m '提交内容的描述'提交到本地仓库
  6. 在用git status查看已经没有需要提交的了

查看提交日志git log

命令形式:git log [options]

options参数

  • --all 显示所有分支
  • --pretty=oneline 将提交信息显示为一行
  • --abbrev-commit 使得输出的commitid更简短
  • --graph 以图的形式显示

版本回退

修改内容重新提交,发现有两条记录,当我们想返回之前的节点

# HEAD^ 是commit提交的ID
git reset --hard HEAD^

查看所有操作记录

如果还想返回已经删除的版本,可以通过git reflog查看操作记录,然后在git reset回退版本

添加文件到忽略列表

可以新建个.gitignore 文件,里面的内容可以决定忽略列表

比如忽略一个文件log.txt,在.gitignore文件中一行填进log.txt

如果想要忽略一个文件夹log,在.gitignore文件中一行填进/logs

git的分支

几乎所有的版本控制系统都以某种形式支持分支,使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的BUg修改、开发新的功能,以免影响开发主线,也可以实现多人协同开发、功能隔离、版本发布等目的

查看本地分支

git branch

创建本地分支

git branch 分支名

切换分支

# 切换分支
git checkout 分支名# 切换分支,如果不存在,直接创建并切换
git checkout -b 分支名

如果分支commit提交了该文件,在其他分支和主分支是看不到的

分支合并

git merge 分支名

删除分支

不能删除当前分支,只能删除其他分支(包括主分支)

# 删除分支时,需要做各种检查
git branch -d 分支名# 不做任何检查,强制删除
git branch -D 分支名

删除分支恢复

git checkout -b 分支名/ID如果不记得了,可以通过git reflog查看操作记录,然后在恢复

git的冲突解决

冲突出现场景一般是不同分支对同一个文件提交修改不同内容,然后合并的时候出现的问题

  • 查看冲突文件

  • 检查冲突内容

  • 手动修改内容

  • 在重修提交

gitee和github的使用

查看是否关联gitee或github远程仓库

git remote

关联gitee或github远程仓库

git remote add <name> <url>
<name> : 远程仓库的名字,一般是origin
<url> : 远程仓库地址

推送到远程仓库

[-f] 是强制删除

git push [-f] [--set-upstream] [远端名称[本地分支名][:远端分支名]]

如果本地分支名和远程分支名相同,则可以只写本地仓库

git push origin master 

--set-upstream 推送到远端的同时并目建立起和远端分支的关联关系

git push -set-upstream origin master

如果当前分支已经和远端分支关联,则可以省路分支名和远端名。

git push

本地分支与远程分支的关联关系

git branch -vv

从远程仓库克隆git clone

git clone <远程仓库> [本地目录]<远程仓库> : 远程仓库的地址

抓取git fetch和拉取git pull

抓取指令就是将仓库里的更新都抓取到本地,不会进行合并。如果不指定远端名称和分支名,则抓取所有分支

git fetch [远程仓库的名字] [远程分支的名称]

拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge。如果不指定远端名称和分支名,则抓取所有并更新当前分支。

git pull [远程仓库的名称] [远程分支的名称]

相关文章:

git的学习与使用(笔记最全)

什么是git Git是一种分布式版本控制系统&#xff0c;每个开发者都可以在自己的机器上拥有一个完整的仓库 特点 断网也可以工作&#xff1a;没网的情况下&#xff0c;不会影响工作。对于未提交到远程库的代码可以随时撤销。可以查看历史提交记录&#xff0c;以及文件内容的修改记…...

windows环境下Grafana+loki+promtail入门级部署日志系统,收集Springboot(Slf4j+logback)项目日志

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…...

学习python时一些笔记

1、winr 命令提示符的快捷键 输入cmd进入终端 2、在终端运行桌面上的python文件 cd desktop(桌面) cd是进入该文件夹的意思。 cd .. 回到上一级 运行python时一定要找到文件的所在地 输入python进入&#xff0c;exit()退出%s字符串占位符%d数字占位符%f浮点数占位符input输…...

php基础学习之错误处理(其二)

在实际应用中&#xff0c;开发者当然不希望把自己开发的程序的错误暴露给用户&#xff0c;一方面会动摇客户对己方的信心&#xff0c;另一方面容易被攻击者抓住漏洞实施攻击&#xff0c;同时开发者本身需要及时收集错误&#xff0c;因此需要合理的设置错误显示与记录错误日志 一…...

云计算 2月28号 (linux的磁盘分区)

一 存储管理 主要知识点: 基本分区、逻辑卷LVM、EXT3/4/XFS文件系统、RAID 初识硬盘 机械 HDD 固态 SSD SSD的优势 SSD采用电子存储介质进行数据存储和读取的一种技术&#xff0c;拥有极高的存储性能&#xff0c;被认为是存储技术发展的未来新星。 与传统硬盘相比&#xff0c…...

demo型xss初级靶场

一、环境 XSS Game - Ma Spaghet! | PwnFunction 二、开始闯关 第一关 看看代码 试一下直接写 明显进来了为什么不执行看看官方文档吧 你不执行那我就更改单标签去使用呗 ?somebody<img%20src1%20onerror"alert(1)"> 防御&#xff1a; innerText 第二关…...

【推荐算法系列十八】:DSSM 召回算法

参考 推荐系统中 DSSM 双塔模型汇总&#xff08;二更&#xff09; DSSM 和 YouTubeDNN 都是比较经典的 U2I 模型。 U2I 召回 U2I 召回也就是 User-to-Item 召回&#xff0c;它基于用户的历史行为以及用户的一些个人信息&#xff0c;对系统中的候选物品进行筛选&#xff0c;挑…...

CNAN知识图谱辅助推荐系统

CNAN知识图谱辅助推荐系统 文章介绍了一个基于KG的推荐系统模型&#xff0c;代码也已开源&#xff0c;可以看出主要follow了KGNN-LS 。算法流程大致如下&#xff1a; 1. 算法介绍 算法除去attention机制外&#xff0c;主要的思想在于&#xff1a;user由交互过的item来表示、i…...

大数据经典面试例题

程序员的金三银四求职宝典 随着春天的脚步渐近&#xff0c;对于许多程序员来说&#xff0c;一年中最繁忙、最重要的面试季节也随之而来。金三银四&#xff0c;即三月和四月&#xff0c;被广大程序员视为求职的黄金时期。在这两个月里&#xff0c;各大公司纷纷开放招聘&#xf…...

软考56-上午题-【数据库】-数据库设计步骤2

一、回顾&#xff1a;数据库设计的步骤 1、用户需求分析&#xff1a;手机用户需求&#xff0c;确定系统边界&#xff1b; 2、概念设计&#xff08;概念结构设计&#xff09;&#xff1a;是抽象概念模型&#xff0c;较理想的是采用E-R方法。 3、逻辑设计&#xff1a;E-R图——…...

抖店入驻费用是多少?新手入驻都有哪些要求?2024费用明细!

我是电商珠珠 我做电商做了将近五年&#xff0c;做抖店做了三年多&#xff0c;期间还带着学员一起做店。 今天&#xff0c;就来给大家详细的讲一下在抖音开店&#xff0c;需要多少费用&#xff0c;最低需要投入多少。 1、营业执照200元左右 就拿个体店举例&#xff0c;在入…...

2024东南大学553复试真题及笔记

2023年真题知识点 引用指针 题目为 传递一个指针的引用做修改&#xff0c;输出指针指向的结果&#xff0c;但是指针被修改&#xff0c;结果就不一样了。 static 静态变量 类里面的静态成员变量&#xff0c;很简单的题目 for循环 看循环的内容输出字符串 try try catch捕…...

编程笔记 html5cssjs 096 JavaScript 前端开发(完结)

编程笔记 html5&css&js 096 JavaScript 前端开发 &#xff08;完结&#xff09; 一、前端开发二、范围三、价值四、在软件开发中地位总结 前端开发在软件开发生态系统中扮演着至关重要的角色。随着Web技术和移动互联网的发展&#xff0c;前端不再是简单的页面展示&…...

案例介绍:信息抽取技术在汽车销售与分销策略中的应用与实践

一、引言 在当今竞争激烈的汽车制造业中&#xff0c;成功的销售策略、市场营销和分销网络的构建是确保品牌立足市场的关键。作为一名经验丰富的项目经理&#xff0c;我曾领导一个专注于汽车销售和分销的项目&#xff0c;该项目深入挖掘市场数据&#xff0c;运用先进的信息抽取…...

几种常用的企业加密文件传输方式,最后一种更佳!

随着远程工作和云计算服务的广泛采用&#xff0c;企业必须实施有效的策略来保障敏感信息在传输过程中的安全性。本文将探讨企业在文件加密传输方面的几种常用策略&#xff0c;并重点介绍最后一种方式是如何利用其创新技术为企业提供数据传输的安全保障。 文件加密传输策略 企业…...

【全志D1-H 哪吒开发板】Debian系统安装调教和点灯指南

全志D1-H开发板【哪吒】使用Deabian系统入门 特别说明&#xff1a; 因为涉及到操作较多&#xff0c;博文可能会导致格式丢失 其中内容&#xff0c;会根据后续使用做优化调整 目录&#xff1a; 参考资料固件烧录启动调教点灯问题 〇、参考资料 官方资料 开发板-D1开发板【…...

Redis 8种基本数据类型及常用命令和数据类型的应用场景

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 文章内容为学习的一些笔记及工作中遇到的一些问题 文章目录 Redis 五大数据类型keyStringListSetHashSorted Set 三种特殊类型Geospatial 地理位置HyperloglogBitmap Redis 五大数据类型 redis 官方网…...

JAVA内存模型与JVM内存结构

注意区分Java内存模型&#xff08;Java Memory Model&#xff0c;简称JMM&#xff09;与Jvm内存结构&#xff0c;前者与多线程相关&#xff0c;后者与JVM内部存储相关。本文会对两者进行简单介绍。 一、JAVA内存模型(JMM) 1. 概念 说来话长&#xff0c;由于在不同硬件厂商和…...

双导师的中国社科院与英国斯特灵大学创新与领导力博士

自1978年恢复高考之后&#xff0c;很长一段时间里我国的高校系统处于人才很匮乏的状态&#xff0c;那个时候很多高校招聘了大量硕士学历教师&#xff08;其中很多人在留校后又读了在职博士&#xff09;&#xff0c;而且都是事业编制。那么接下来小编与中国社科院与英国斯特灵大…...

OpenXR 超详细的spec--API初始化介绍

3.API 初始化 3.1 Exported Functions 实现API loader的动态链接库(so/dll)必须export all core OpenXR API functions。然而application可以通过使用xrGetInstanceProcAddr()来获取指向extension函数的指针。 3.2 Function Pointers OpenXR所有函数的指针都可以通过函数xr…...

MySQL实战:主键与外键的5个常见设计误区及优化方案

MySQL实战&#xff1a;主键与外键的5个常见设计误区及优化方案 在数据库设计领域&#xff0c;主键和外键的合理运用直接影响着系统的稳定性和查询效率。许多开发者在项目初期往往忽视这些基础元素的设计规范&#xff0c;直到面临性能瓶颈或数据混乱时才追悔莫及。本文将揭示那…...

GHelper:如何用轻量级工具解决华硕笔记本性能控制的三大难题?

GHelper&#xff1a;如何用轻量级工具解决华硕笔记本性能控制的三大难题&#xff1f; 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Fl…...

RPG Maker MV/MZ文件解密工具:轻松解锁游戏资源的神奇钥匙

RPG Maker MV/MZ文件解密工具&#xff1a;轻松解锁游戏资源的神奇钥匙 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://git…...

HunyuanVideo-Foley效果展示:钢琴独奏音效+琴房光影视频生成高清集锦

HunyuanVideo-Foley效果展示&#xff1a;钢琴独奏音效琴房光影视频生成高清集锦 1. 惊艳视听效果预览 HunyuanVideo-Foley模型在音乐场景的表现令人惊叹。当输入"钢琴独奏音乐会"这一简单描述时&#xff0c;模型能够同时生成高清视频和匹配的钢琴音效&#xff0c;创…...

Qwen3.5推理模型应用实战:快速搭建你的智能学习与代码助手

Qwen3.5推理模型应用实战&#xff1a;快速搭建你的智能学习与代码助手 1. 引言&#xff1a;为什么选择Qwen3.5推理模型 在当今AI技术快速发展的时代&#xff0c;找到一个既轻量又强大的推理模型对于开发者来说至关重要。Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF…...

网络原理视角下的CasRel模型分布式部署与通信优化

网络原理视角下的CasRel模型分布式部署与通信优化 最近在帮一个团队落地一个关系抽取项目&#xff0c;他们用的就是CasRel模型。模型本身效果不错&#xff0c;但一到线上高并发场景&#xff0c;单实例就扛不住了&#xff0c;响应延迟飙升&#xff0c;还时不时挂掉。这让我意识…...

FireRedASR-AED-L效果实测:微信语音转文字→长语音断句与上下文连贯性

FireRedASR-AED-L效果实测&#xff1a;微信语音转文字→长语音断句与上下文连贯性 你是不是也遇到过这种情况&#xff1f;微信里收到一段长达5分钟的语音消息&#xff0c;点开听吧&#xff0c;太费时间&#xff1b;不听吧&#xff0c;又怕错过重要信息。更让人头疼的是&#x…...

OpenClaw多模态扩展:gemma-3-12b-it处理截图与图像识别任务

OpenClaw多模态扩展&#xff1a;gemma-3-12b-it处理截图与图像识别任务 1. 从纯文本到多模态的跨越 去年冬天&#xff0c;我接手了一个自动化测试项目&#xff0c;需要验证某个GUI工具在不同分辨率下的界面布局。最初尝试用传统脚本实现&#xff0c;但面对动态变化的UI元素和…...

OpenClaw排错大全:Phi-3-mini-128k-instruct接口连接失败7种解决方案

OpenClaw排错大全&#xff1a;Phi-3-mini-128k-instruct接口连接失败7种解决方案 1. 问题背景与排查思路 上周我在本地部署Phi-3-mini-128k-instruct模型时&#xff0c;遇到了OpenClaw连接失败的棘手问题。控制台不断报错"Model connection timeout"&#xff0c;但…...

C++的std--ranges视图转换函数异常安全与资源清理在惰性求值中的处理

C的std::ranges视图转换函数异常安全与资源清理在惰性求值中的处理 现代C引入的std::ranges库为序列操作提供了声明式编程支持&#xff0c;其中视图转换函数&#xff08;如transform、filter等&#xff09;通过惰性求值优化性能。惰性求值机制与异常安全、资源清理的交互可能引…...