Git学习

Git学习心得:从零到掌握的成长之路 通过Git的学习,我不仅掌握了一个工具,更理解了"版本控制思维"的价值——这种对工作过程进行系统性记录与管理的思维方式,完全可以迁移到论文写作、实验报告等学术场景。而AI工具的辅助,则像拥有了一位不知疲倦的导师,它不会直接给我答案,但总能提供突破思维瓶颈的线索。并且在我犹豫不决时,总可以看看ai是否有好的建议,并且可以随时向它提问,找到答案。未来,我计划将Git的使用延伸到更多领域:用Git管理LaTeX论文版本,用GitHub Pages搭建技术博客,甚至用Git记录机器学习实验过程。 阅读详情

1.在机器上下载git

sudo yum install git

2.在自己的电脑上建立一个目录

mkdir learngit
cd learngit
pwd //显示当前目录路径

3.通过git init命令把当前目录变成Git可以管理的仓库


1.我们开始编写一个readme.txt文件

Git is a version control system.
Git is free software.

2.用命令git add告诉Git,把文件添加到仓库:

$ git add readme.txt

执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。

第二步,用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

当我们在库的文件被修改的时候
git status 命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
用 git diff查看修改内容

被修改显示红色
不被修改显示

git log 回顾之前的版本
git  log  --pretty=oneline 经简化

git reset --hard HEAD^ 返回上一次修改的内容
git reset --hard HEAD^^ 返回倒数第二次修改的内容
git reset --hard HEAD~100 返回倒数第100次修改的内容

也可以根据commit 的版本号来切换

git reset --hard 4523211
Git提供了一个命令git reflog用来记录你的每一次命令:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。


你可以发现,Git会告诉你,git checkout – file可以丢弃工作区的修改:

$ git checkout – readme.txt

命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

mkdir *** 创建一个目录
git init  在指定目录内申明这个目录是我使用的库
vim readme.text 编写一个文件
git add readme.txt 将该文件存储到缓存区
git commit -m "This my first file "   将文件提交到本地库中  This my firsy file是提文件的名称

git status 查看我的仓库当前的状态
git diff 查看修改的状态
git diff ******* 查看该文件修改的内容

其中  使用git status 查看仓库当前状态的时候,红色文件表示修改了还没有提交到缓存区,绿色文件表示提交了并且已经提交到了缓存区 .当所有文件都提交完毕以后,使用git status 会显示无文件要提交,干净的工作区  
    使用 git diff  查看修改状态时如果返回空,则表示没有任何修改的内容,注意只要将修改后的文件提交到了缓存区,就不会查出修改内容

文件每上交一次,都会在库中存储一次记录,我们称他为版本日志,并且我们可以使用个git log 浏览这些版本,需要注意的是只要将文件上交到库中才会被记录,保存在缓存区的文件并不会被记录成版本日志,如果希望看到的是比较清晰的条目,可以输入git log --pretty=oneline
|
|
|
|
会出现
$ git log --pretty=oneline
3628164fb26d48395383f8f31179f24e0882e1e0 append GPL
ea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributed
cb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file
其中 append GPL 是提交的文件名字
3628164fb26d48395383f8f31179f24e0882e1e0 是commit id(版本号)是计算出来的 和SVN不一样




版本回退
git reset --hard HEAD^ 回退到上一个版本      HEAD表示当前命令   
git reset --hard HEAD^^ 回退到上上一个版本
如果窗口没有关掉,想要回到调整最初的版本,可以
git reset --hard +版本号  


git reflog 返回输出自己的每一条命令

插入小广告

修改自己的author 和email

> git config --global user.email "youremail@google.com" git config
> --global user.name "your name"
git checkout -- file   当你的文件修改之后并没有提交,可以使用该代码来撤销修改

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
当你将文件a提交到了库中以后,删除了自己电脑上的文件,这个时候你有两个选择
1.git rm filename 删除版本库中的文件
 git commit -m "重新提交版本日日记"   重新提交版本日记
 2.git checkout -- filename 恢复文件 (与版本库中的版本日记对比并且相匹配)




开始建立分布式版本库


1.回到主目录之下
$ ssh-keygen -t rsa -C "youremail@example.com"
会出现一个.ssh文件,文件中有id_rsa文件和id_rsa.pub文件,需要注意的是,id_rsa.pub是公共文件可以给别人看,但是id_rsa是私人文件,需要保密
2.cat id_rsa.pub文件,复制其中的内容放入github网站中的个人设置里面的ssh连接中
3.转到自己的github项目中,会有教程
克隆代码  

在主目录下个git clone+一个地址就OK拉

创建与合并分支

git checkout -b dev 创建一个新的分支div并且切换当分支div
git checkout  master 切换到master分支
git branch  列出所有分支

git merge 分支名   合并分支    用于合并指定分支到当前分支

合并方式:fast-forward 快进模式

删除分支:git branch -d 分支名

当两个分支都修改了同名文件的时候,合并的结果会发生冲突
这个时候 我们可以用  git status 来查看冲突的文件
这个时候我们可以直接打开该文件来查看和修改冲突文件的内容


Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存:


git log --graph命令可以看到分支合并图。




$ git merge --no-ff -m "merge with no-ff" dev
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

临时工作缓存

git stash 缓存
切换到 master 主支进行工作结束yihou
切回到dev
git stash list 查看缓存内容
1.git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
2.git stash pop 恢复并删除
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

多人协作


当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。

要查看远程库的信息,用git remote:

$ git remote
origin

或者,用git remote -v显示更详细的信息:

$ git remote -v
origin  git@github.com:michaelliao/learngit.git (fetch)
origin  git@github.com:michaelliao/learngit.git (push)

上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。



添加标签
git tag ***
查看标签
git tag
给指定的commit id添加标签
git tag v0.9 5131565
查看标签具体信息
git show v0.9

备注标签信息
git -a v0.9 -m "-a指定标签,-m指定备注信息"  5156156
删除标签
git -d v0.9
推送标签到某个远程
git push origin v0.9


一次性推送所有标签
git push origiin --tags

如果标签已经推送到远程,则需要县删除本地
$ git tag -d v0.9
再删除远程
$ git push origin :refs/tags/v0.9
【OpenBMC 系列】4.启动流程 使用qume模拟ast2600-evb 1.安装openbmc适配的qume 2.启动bmc 3.使用bmc web 阅读详情

相关推荐

英飞凌TC377的Flash管理、UCB配置与HSM安全机制解析

本文深入解析了英飞凌TC377微控制器的Flash存储结构、UCB配置机制与HSM安全模块。详细阐述了带Cache与不带Cache的PFlash地址访问差异、利用SOTA与AB Swap实现无感OTA更新的原理,以及如何通过UCB安全配置启动流程与写保护。重点剖析了HSM硬件安全模块在密钥管理、安全启动与安全OTA中的核心作用,为开发高可靠性嵌入式系统提供实战指南。

weixin_29170327的博客 523

如何学习git:git学习之路

Git熟练度 = 基础概念理解 × 实际操作次数 × 解决问题经验最重要的三点:不要急:Git是一个需要时间沉淀的技能多实践:理论再好,不如动手操作一次敢试错:Git的设计很安全,大胆尝试各种命令开始你的Git学习之旅吧!🚀记住:每个Git大师都是从第一次git init开始的。你的Git学习之路,就从今天开始!

2401_82411601的博客 934

全国各省份影像下载地址(11级别)

cesium中使用urltemplate加载,leaflet中使用tile加载,具体加载有问题可以给我留言。

资深三维GIS开发 5143

Git学习计划

这篇文章介绍了Git的1V1教学计划,分为理论学习(前3周)和实践操作(后2周)两大部分。理论学习包括Git基本概念、核心术语解析和配置方法;实践操作涵盖基本开发流程和分支管理。每周设定明确的学习目标、内容、方法和任务,如概念总结、思维导图绘制、实际操作记录等。计划强调通过文档阅读、视频学习和项目实践相结合的方式,系统掌握Git的版本控制功能,最终要求对所学内容进行全面复习和总结,并建议进一步学习高级功能。整体安排循序渐进,理论与实践并重。

战族狼魂的博客 802

STC89C52RC单片机原理图详解

左侧A0和右侧B0为一 一对应的关系,左上角DIR为控制数据方向端口,如果DIR接高电平是将左侧数据A0~A8送到右侧B0~B8,如果DIR接低电平,是将右侧数据B0~B8送到左侧A0~A8,由于在电路板上LE始终与VCC连接,因此这里。74HC595是串行输入,并行输出的移位寄存器,可用3根线输入串行数据,8根线输出并行数据,多片级联后,可输出16位、24位、32位等,常用于I/O口扩展。由于数码管为共阴极,给数码管下面接口输入阳码时,LED才亮,但是直接将P0~P7的高电平输入到数码管时,

m0_50562428的博客 6万+

TP-LINK电信定制摄像头刷机教程:解锁官方功能与固件升级

固件是嵌入式设备的操作系统,控制着硬件的基础功能。其工作原理是通过更新或替换存储在设备非易失性存储器中的程序代码,从而改变设备的行为和功能。这项技术的核心价值在于赋予用户对设备的完全控制权,能够解除厂商或运营商的软件限制,实现功能自定义、性能优化和安全更新。在智能家居、网络设备和物联网领域,固件升级与刷机是常见的工程实践,用于修复漏洞、增加新特性或适配不同平台。本文聚焦于利用TFTP恢复模式这一通用网络设备维护机制,针对TP-LINK电信定制版摄像头,提供一套完整的刷机方案,将设备刷入官方通用版固件,以解除

weixin_34205826的博客 492

Git学习+Git在IDEA中使用

打开git命令窗口右键 ->创建git信息获取Git仓库在本地初始化初始化 手动创建仓库文件夹 -> 执行 git init从远程仓库克隆(常用) git clone 远程仓库地址。

梓梓心的博客 2719

OpenCV自学记录(1)——(一拳超人)图像处理基础(图像获取、图像变化)

学习深度学习进行图像分类和目标检测时,要有一定的图像处理的基础。在学习深度学习之前,看了一本《图像处理技术基础》,现在也忘得差不多了,后悔当初没有整理记录下来。现在整理一下图像处理的常用方法,最后实现一个小项目——基于OpenCV的车牌号识别。 OpenCV自学记录(1)——图像处理基础(一)1、图像获取1.1获取图像数据1.2 获取摄像头图像数据2、图像变化2.1 移动(translation)...

qq_40784418的博客 1455

git学习

此博客主要用于记录git学习过程中的知识点,以后遗忘的时候可以快速查询。主要学习资料为git的参考api以及B站网课。 系统地学习git这个想法其实是不久之前才萌生的。从大二的时候开始接触到git,只会最简单的git clone,git push,git pull。也一直只会add,commit,push三连。因为那个时候基本只是自己需要从开源网站上获取代码供自己直接使用,以及提交作业,所以学了基本的功能也没有仔细研究深入。这一问题在本学期期末的课设中被无限的放大了。 这一学期我们小组的课设是一个WEB.

qq_44459787的博客 2万+

【安全机制分析案例】从PDF预览页面提取原始PDF文件的方法原理与实践 篇二:基于致远互联(Seeyon)封装的SuwellLightRead技术

该HTML代码片段展示了致远OA协同办公系统的前端页面结构,包含多个CSS样式表和JavaScript文件的引用。页面设置了IE兼容模式,加载了全局环境变量、UI组件库和公告模块相关资源。代码中定义了系统路径、静态资源后缀等全局变量,并包含公告查看功能的相关配置参数。页面还引用了水印、文档处理、即时通讯等功能的JS文件,并设置了文件下载框架。整体呈现了一个典型的OA系统前端实现方案,包含浏览器兼容处理、资源加载和功能模块初始化等逻辑。

生活在别处 2074

RK3588 , 基于mpp 解码 Jpeg To RGB

本文介绍了在RK3588开发板上使用Rockchip MPP(Media Process Platform)硬件加速接口将JPEG图像解码为RGB格式的完整流程。主要包括三个关键步骤:1) 读取JPEG文件数据;2) 配置MPP解码器,包括初始化上下文、设置RGB888输出格式和解码参数;3) 执行解码任务并将结果保存为图像文件。通过硬件加速,该方法能高效完成JPEG到RGB的转换,适用于嵌入式多媒体处理场景。

J。 1211

学习Git的资料你想要的都在这里

一、背景 git 是开发中常见的版本管理工具,掌握好git可以说是现在工作的必备技能之一。 下面推荐一些好的配套网站和软件,以及个人推荐的提交规范。 二、学习资料 推荐几个非常不错的学习网站 官方图书和文档: https://git-scm.com/book/zh/v2 可以查看官方中文版的教程和下载PDF文档 https://git-scm.com/docs 菜鸟教程...

悟鸣的技术博客 3211

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

git 学习网站

跳转 这是个很好的学习git网站,值得拥有。

Stephen 602

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Git学习的最佳教程

身为网页设计师或者网页开发者的你,可能已经听说过Git这个正快速成长的版本控制系统。它由GitHub维护;GitHub是一个开放性的、存储众人代码的网站。如果你想学习如何使用Git,请参考本文。在文章最后,我们罗列了其他Git学习资源。 1. Pro Git Pro Git是由Scott Chacon编写的免费在线图书,Scott现在是Git的开发人员。Pro Git有精彩的结构和一系列有组织

szu030606的专栏 1611

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Git - 学习掌握Git的建议

为您整理了不同学习阶段和风格的 Git 优质课程资源,均来自社区广泛推荐,可放心学习。

guoqx的专栏 828

Git学习地址

Git学习地址

weixin_42631192的博客 205

git及github学习资源汇总

git及github学习资源汇总: git-book-zh-v2, git学习仿真沙盒 learn-git-branching等。

第七宇林的博客 460

Git 学习 —— 简单介绍

声明: 本文是以我自己学习Git的资料作为总结,希望可以对您有所帮助。 对于Git的学习,我们一定要分清楚几个概念,或者说几个分区:工作目录,暂存区,本地仓库以及远程仓。而学习和很多好的理解这里个概念对我们下面的讲解很重要,因为我们主要就是在这里个地方进行工作的,而我们的代码同样就是在这几个地方来回进行切换的。下面我们来讲解 上面就是这几个分区的关系,不过我...

静祥阁 369

通过游戏式学习Git

简介 Learn Git Branching是一个游戏式关卡动画式学习Git的网站,之前一直想找一个以游戏式、关卡升级是的学习方法,这个就是,很好的,先上截图及连接。 image.png image.png [https://learngitbranching.js.org/?locale=zh_CN](https://learngitbranching.js.org/?loca...

web326的专栏 271

git学习【完结】

​ 情况3:版本库存在最新版本的代码 xxx code,但是上一版不包含 xxx code,我们通常使用git进行版本控制的流程如下:工作区->(git add)->暂存区->(git commit)->版本库->(git push)->远程仓库,我们情况3撤销的前提是在commit之后没有进行push,撤销的目的就是不要影响远程仓库的代码。​ 因为创建,合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

qq_55317476的博客 1492

Git 学习笔记

这篇记录记录了我在git学习中常常用到的指令,方便在未来进行查阅。此篇文章也会根据笔者的学习进度持续更新。

2302_79769914的博客 1505

git完整学习指南

全面且新手友好的版本控制系统教程,涵盖从基础概念到高级应用的完整知识体系。

qq_48107900的博客 1874

Git入门学习 - 好玩又能学习的好资源

关键词:Git,Github Git入门学习经验总结

D_super的博客 303

git学习网站

去年暑期实习接触的git ,然后找到了一个比较好的网站,但是实习后忘了网站名字,今天突然看到,记录下,也给想学git的人一个选择 这个是用图解,类似打游戏的形式,我玩着挺上头,就跟打游戏一样,找找攻略,肝几天就发现自己能通关了,哈哈哈 https://oschina.gitee.io/learn-git-branching/ ...

雾隐雾现的至渝博客 2万+

Git 学习网页

页面版Git学习: 链接

yuchunhai321的博客 204
上一篇: Youcompleteme安装
下一篇: Bootstrap学习
Alpaca_h
博客等级 码龄9年 0粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值