Git版本工具学习
目录
- 版本控制
- git配置
- 工作区域
- 文件状态
- git对象模型
- 基础命令
- .gitignore忽略文件
- IDEA集成Git
版本控制
本地版本控制:在本地记录每一次版本更新。
集中版本控制:版本数据都保存在单一服务器,不联网就看不到版本信息。SVN
分布式版本控制:所有的版本信息都同步到本地的每个用户,可以离线在本地提交,只需在联网时push。Git
SVN与Git的区别:
- SVN 是集中式的;Git 是分布式的
- SVN 的分支操作成本(创建/删除/合并)比 Git 高
- SVN 是存储变更差异;Git 是存储文件快照
- SVN必须联网操作,只有服务器上的版本控制;Git支持离线操作,有本地的版本控制
git配置
1)git\mingw64\etc\gitconfig ,–system系统级
2)C:\Users\用户\.gitconfig ,–global全局
Git branch 获取分支列表 ,列表保存到refs/heads/master 下面。
git config -l,配置清单
git config --system --list,系统配置
git config --global --list,全局配置(用户配置)
安装好git后,设置用户名和邮箱(必要):
git config --global user.name "xxx"
git config --global user.email "xxx@qq.com"
配置ssh公私钥连接远程仓库:
在c:/Users/用户/.ssh下打开git bash,运行ssh-kengen生成公私钥,将pub公钥粘贴到远程仓库配置中。
工作区域
git本地有三个工作区域:工作目录、暂存区(stage/index)、资源库(repository)、远程仓库(remote repository)。
工作区:平时写代码项目文件的目录。
index/stage:存放提交的文件列表信息的文件。
Local R本地仓库:存放提交的所有版本信息,HEAD总是指向当前分支。
Remote:托管代码的远程服务器。

文件状态
untracked:未加入到本地库中,不参与版本控制,使用git add变为staged状态
unmodify:文件已入库,未修改。变为modified文件或git rm移除版本库变为untracked状态。
modified:文件已修改。通过git add变为staged状态,或通过git checkout放弃修改回到unmodify状态。
staged:暂存状态。执行git commit提交到版本库中,文件变为unmodify状态,执行git reset HEAD filename取消暂存,文件变为modified状态。
git对象模型
在git系统中有四种尅对象:
commit:指向一个tree,纪录了文件操作,作者,提交者信息;
tree:对象关系树,管理tree和blob的关系;
blob:保存文件内容;
tag:标记提交。
基础命令
git init,本地创建一个新的项目。
git clone [url],克隆远程仓库上的项目代码。
git rm/mv [file],删除移动文件
git status [xx],查看文件状态。
git commit -m xxx,提交暂存区中的内容到本地仓库,-v提交时显示diff信息。
git branch,查看本地分支,-r查看远程,-d [name]删除分支,-rd删除远程分支
# 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]
git merge [branch],合并分支到当前分支。
git checkout [branch]或git switch,切换到指定分支。
git checkout [file],恢复暂存区文件到工作区。
git log,显示当前分支版本历史,-S [key]根据关键词搜索提交历史,–follow [file]显示某文件的版本历史,–oneline简洁显示。
git shortlog -sn,显示所有提交过的用户。
git blame [file],显示文件被什么人什么时间修改。
git diff,显示工作区和暂存区的差异。
git show [commit],显示某次提交的时间和内容变化。
git fetch [remote],下载远程仓库变动到本地版本库。
git remote -v,显示所有远程仓库,add添加仓库,remove删除。
git pull [remote] [branch],取回远程仓库分支的变化并与本地合并。
git push [remote] [branch],推送本地分支到远程仓库。
master分支主要用于发布新版本,常用工作分支使用dev等分支。
推送失败,因为最新提交和你试图推送的提交有冲突。先用git pull把最新提交从origin/dev抓下来,然后在本地合并,解决冲突,再推送。git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接。
git branch --set-upstream-to=origin/dev dev
这回git pull成功,但是合并有冲突,需要手动解决,解决后提交,再push。
.gitignore忽略文件
在目录下创建.gitignore文件,将某些文件排除在版本控制外。
#:注释。
tmp/*.txt:忽略tmp目录所有以.txt结尾的文件,不包括tmp/d/*.txt。
!:除了这个文件外忽略所有
/tmp:忽略除tmp文件夹外的其他文件
tmp/:忽略tmp目录下的所有文件
IDEA集成Git
将所有克隆下来的git项目或新创建的git项目文件拷贝到IDEA项目中即可,或在IDEA下载git插件。
git命令学习和工具下载链接
相关文章:
Git版本工具学习
目录 版本控制git配置工作区域文件状态git对象模型基础命令.gitignore忽略文件IDEA集成Git 版本控制 本地版本控制:在本地记录每一次版本更新。 集中版本控制:版本数据都保存在单一服务器,不联网就看不到版本信息。SVN 分布式版本控制&…...
baidu, google和chatgpt -- 翻译对比
原文 That ChatGPT can automatically generate something that reads even superficially like human-written text is remarkable, and unexpected. But how does it do it? And why does it work? My purpose here is to give a rough outline of what’s going on inside…...
高分辨率全球海洋温度和盐度再分析数据Global Ocean Physics Reanalysis(0.083°),并利用matlab读取绘图
1.引言 在研究全球海平面变化的问题中,卫星测高获得总的海平面变化,而海平面变化包含质量变化和比容变化。因此测高数据和海洋物理分析数据对于海平面研究至关重要。 测高数据下载网址: Global Ocean Gridded L 4 Sea Surface Heights And …...
微信小程序修改placeholder样式
微信小程序有既定的修改placeholder的标签 一、placeholder-style直接修改样式 <input type"text" placeholder"请输入" placeholder-style"color:#e2e2e2;"></input>二、placeholder-class设置样式类 <input type"text&…...
爬虫案例1
通过get请求直接获取电影信息 目标页面: https://spa6.scrape.center/在network中可以看到是通过Ajax发送的请求,这个请求在postman中也可以直接请求成功,这只是一个用来练习爬虫的,没有达到js逆向的过程,需要通过分析js 代码来获…...
修改表结构
目录 修改表结构 创建数据表插入数据 修改已有列 修改 member 表的 name 列的定义 为表增加列 增加一个 address 列,这个列上不设置默认值 增加一个 sex 列,这个列上设置默认值 删除表中的列 删除 sex 列 Oracle从入门到总裁:https…...
Rust 语言中的 into() 方法
在 Rust 中,into() 方法通常用于将一个类型的值转换为另一个类型,这通常涉及到资源的所有权转移。into() 方法通常定义在实现了 Into<T> trait 的类型上,该 trait 允许一个类型被“转换”为另一个类型。 into() 方法的一个常见用途是在…...
MinIO权限提升漏洞CVE-2024-24747详细解决办法
漏洞名称: MinIO权限提升漏洞(CVE-2024-24747) 漏洞简介 2024年2月2日,深瞳漏洞实验室监测到一则MinIO 存在权限提升漏洞的信息,漏洞编号:CVE-2024-24747,漏洞威胁等级:高危。 该漏洞是由于用户创建的访…...
“我快无聊死了”用英语怎么说?柯桥英语口语学习,成人零基础学外语
每日一句 Im bored to death. 我快无聊死了。 单词解析: bored / bɔːd / adj.无聊的,厌倦的 bored to d15857575376eath:指非常无聊或厌烦,达到了极点的程度。 "bored" 和 "boring" 都与无聊相关&#…...
JS ATM练习案例(复习循环知识)
需求:用户可以选择存钱、取钱、查看余额和退出功能。 分析:1循环时反复出现提示框,所以提示框写到循环里面。 2.退出的条件是4,所以是4就会结束循环 3.提前准备一个金额预存储 4取钱为减法操作,存钱为加法操作…...
Android 二维码相关(一)
Android 二维码相关(一) 本篇文章主要记录下android下使用zxing来创建二维码. 1: 导入依赖 api "com.google.zxing:core:3.5.1"2: 创建二维码 创建QRCodeWriter对象 QRCodeWriter qrCodeWriter new QRCodeWriter(); 将文本内容转换成BitMatrix BitMatrix encode …...
利用tree命令自动保存文件层级结构
tree命令的使用 为了将上图左侧的文件目录,生成上图右侧中的文件夹结构列表,保存在txt中,使用了如下cmd命令: C:\armadillo-12.8.0>tree .>list.txt以上tree命令分为3部分: tree 命令. 在当前目录>list.tx…...
C++初阶:内存管理
目录 1. C/C中各种资源的内存分布1.1 C/C程序内存区域划分1.2 各资源的内存分布情况(练习) 2. C中的动态内存管理方式2.1 new/delete开辟内置类型空间2.2 new/delete开辟销毁自定义类型空间 3. operator new 与 operator delete函数4. new与delete的实现…...
vue和react的diff算法源码
Vue.js 中的虚拟 DOM Diff 算法是其性能优化的关键之一。 Vue.js 的 Diff 算法主要基于 Snabbdom,以下是 Vue.js 中虚拟 DOM Diff 算法的简化版伪代码,以便说明其基本思想: function patch(oldVnode, vnode) {// 如果 oldVnode 不存在&…...
Coordinate Attention(CVPR 2021)
paper:Coordinate Attention for Efficient Mobile Network Design official implementation:GitHub - houqb/CoordAttention: Code for our CVPR2021 paper coordinate attention 背景 注意力机制,已经被广泛用于提高深度神经网络的性能&…...
计算机网络-第4章 网络层(2)
主要内容:网络层提供的两种服务:虚电路和数据报(前者不用)、ip协议、网际控制报文协议ICMP、路由选择协议(内部网关和外部网关)、IPv6,IP多播,虚拟专用网、网络地址转换NAT,多协议标…...
重学SpringBoot3-WebMvcAutoConfiguration类
更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-WebMvcAutoConfiguration类 是什么什么用生效条件作用 自定义配置的三种方式自定义配置举例1. 自定义 DispatcherServlet 配置2. 静态资源配置3. 自定义…...
探索数据结构:深入了解顺序表的奥秘
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 什么是顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元…...
苍穹外卖学习-----2024/03/010---redis,店铺营业状态设置
1.Redis入门 2.在Java中操作Redis 3.店铺营业状态设置 BUG!!! 今天在启动项目时,用到了Redis缓存数据库,但是却出现了报错信息: ERR Client sent AUTH, but no password is set。Caused by: io.lettuce.core.RedisCommandExecutionException…...
RUST 每日一省:发布到crates.io
github是开源代码分享的地方,rust的开源项目除了github,我们还可以将其发布到 crates.io 上,然后其它用户就可以使用cargo进行安装使用了。其实步骤很简单,只有三条命令了,我们一次来看一下。 1、cargo package 首先&a…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
