Windows下Git Bash的基本使用

news2024/11/23 22:40:29

创建版本库

git init

初始化完成后,会在目录下创建一个.git的隐藏目录,用来存放项目信息。

添加文件到版本库

在项目目录下新建文件readme.txt,内容为

Git is a version control system
Git is  a free software
This is my first Try

然后,使用命令

git add

将文件添加到仓库

然后,使用git commit将文件提交到仓库:

 git commit -m "wrote a readme file"

git commit 的参数-m后面输入的是本次提交的备注说明

你也可以先往仓库中添加多个文件,然后依次性提交:

git add file1.txt
git add file2.txt

或者直接在项目中“右键”,选择“Git Add All files now”,将所有修改文件添加到仓库,然后用“git commit”提交体改到仓库。

文件修改

现在修改readme.txt内容,将第一行内容修改为“Git is a distributed version control system“,然后输入”、

git status

查看结果:

显示修改了readme.txt并等待提交,但是它并没有告诉我们究竟修改了哪些内容,这时就可以输入”git diff“来查看文件到底修改了哪些内容:

git diff

然后,将文件保存到仓库:git add readme.txt ,这时再运行”git status “查看仓库的状态:

提示readme.txt已经被修改,而且修改将要被提交。运行命令 git commit -m "add word distributed at line one" 将修改提交到仓库,再运行 git status

 git commit -m "add word distributed at line one" 

Git会告诉我们没有需要提交的修改,而且工作目录是空的。

版本退回

继续修改readme.txt 并提交:

这样,到现在为止,我们的readme.txt就已经有了三个版本,我们在实际的开发中对文件的修改肯定不止这么多,我们肯定也不会记住每次都修改了哪些文件的哪些内容,这时,就可以使用git log 命令来查看修改的历史记录:

git log

git log 可以查看那由近到远的提交历史,如果输出的信息太多,可以加上参数:--pretty=oneline

git log --pretty=oneline

上图中类似”f5526...“这样的一长串字符串时Git的版本号(commit id)与SVN不一样不是类似1、2、3的递增数字,而是用SHA1计算出来的一个非常大的数字,用十六进制表示,而且每台计算机看到的也不同。那为什么commit id要用这么一长串字符串来表示呢?因为Git是分布式的版本管理系统,如果大家都用1、2、3这样的版本号,那肯定会发生冲突。

那怎么把readme.txt退回到上个版本呢?

首先,Git必须知道当前是哪个版本。在Git中,用 HEAD 表示当前版本,上个版本是 HEAD^ ,上上个版本是 HEAD^^ ,再网上可以用 HEAD~n。现在,我们将当前版本返回到上个版本:

 git reset --hard HEAD^

然后readme.txt内容就回到了上个版本:

然后,输入 

git log

 查看当前版本库状态:

最新的那个”append GPL“ 版本已经看不到了!好比从21世纪回到了19世纪,想再回去已经回不去了。

其实方法还是有的,我们可以使用 git reset --hard commit id 来跳回到指定的版本,当然,你要记得那个版本号:

git reset --hard f5526

查看文件,然后你会发现文件内容又变成了原来的那个最新版本:

上面的方法固然可以回到对应的版本,但是你必须知道对应的版本号,如果你找不到版本号,那怎么办呢?

Git 提供了一个命令 git reflog来记录你的每次命令:

git reflog

这样你就可以通过对应的历史记录提示,找到commit id来返回到对应的版本。

撤销修改

现在我们继续修改 readme.txt ,在文件中增加一行:This is some wrong words,保存。

情况一:文件做了修改,但还没有使用git add 将修改提交到暂存区。

这是,我们输入 git  status

git  status

Git就会提示我们,修改还没有提交,然后也会提示我们可以使用git add将文件修改提交 或者 使用git checkout来取消修改。我们输入命令 git chkout --readme.txt ,然后输入命令git status :

git chkout --readme.txt 
git status 

Git会提示没有做修改,工作区是空的,然后,我们就撤销了对文件的修改。

情况二:我们修改了文件,并使用git add将修改提交到了暂存区

这种情况下,我们同样输入命令 git status

Git会提示我们文件的修改已经提交到暂存区,等待提交到master。同时也提示我们,可以使用git reset HEAD file命令来撤销。

git reset HEAD file

输入命令 git status,Git会告诉我们,文件的版本回到了git add之前的状态,然后如果我们还想将工作区的修改丢掉,就使用上面情况一的方法:git checkout --file

另外的

如果你修改提交到暂存区并提交到了版本库,这时想要撤回修改,只要使用上面的版本退回就可以了。如果你提交到了版本库,并提交到了远程版本库,那就很难撤销修改了。

文件删除

将readme.txt 删除,然后输入命令git status

git status

Git就会提示我们,删除了文件,但是改变还没有提交,可以使用git restore来取消修改,或者使用git rm file来提交修改

git rm readme.txt
git commit -m "delete firl readme.txt"

然后,readme.txt 就从版本库中删除了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/979550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习推荐系统(六)DeepFM模型及其在Criteo数据集上的应用

深度学习推荐系统(六)DeepFM模型及其在Criteo数据集上的应用 在2016年, 随着微软的Deep Crossing, 谷歌的Wide&Deep以及FNN、PNN等一大批优秀的深度学习模型被提出, 推荐系统全面进入了深度学习时代, 时至今日, 依…

uniapp项目实践总结(十一)自定义网络检测组件

导语:很多时候手机设备会突然没网,这时候就需要一个网络检测组件,在没网的时候显示提示用户,提供用户体验。 目录 准备工作原理分析组件实现实战演练案例展示 准备工作 在components新建一个q-online文件夹,并新建一个q-online.vue的组件;…

华为云云服务器评测|安装Java8环境 配置环境变量 spring项目部署 【!】存在问题未解决

目录 引出安装JDK8环境查看是否有默认jar上传Linux版本的jar包解压压缩包配置环境变量 上传jar包以及运行问题上传Jar包运行控制台开放端口访问失败—见问题记录关闭Jar的方式1.进程kill -92.ctrl c退出 问题记录:【!】未解决各种方式查看端口情况联系工程师最后排查…

【C++基础】5. 变量作用域

文章目录 【 1. 局部变量 】【 2. 全局变量 】【 3. 局部变量和全局变量的初始化 】 作用域是程序的一个区域,一般来说有三个地方可以定义变量: 在函数或一个代码块内部声明的变量,称为局部变量。 在函数参数的定义中声明的变量,称…

关于HarmonyOS元服务的主题演讲与合作签约

一、感言 坚持中,总会有很多意想不到的收获。 前几次参与HDC时更多的是观众、开发者、专家的身份,以参观、学习、交流为主。 通过几年的努力,和HarmonyOS功能成长,在2023年的HDC大会中,有了我的演讲,并带领…

永安通配符和泛域名SSL证书的区别

随着互联网的快速发展,现在大多数人都已经习惯在网上交流、购物、学习,因此互联网上的各种类型的网站越来越多,不仅是企事业单位创建各种类型的网站,个人开发者创建的网站也越来越多,一张单域名SSL就不能满足个人或者企…

pdf怎么合并在一起?几种方法快速合并

pdf怎么合并在一起?在处理PDF文件时,有时需要将多个PDF文件合并成一个文件。这种操作在日常学习、工作和生活中很常见。但是,如果没有专业的PDF工具,这项任务可能会变得非常繁琐、耗时和费力。因此,我们需要一款功能强…

java+ssm+mysql电梯管理系统

项目介绍: 使用javassmmysql开发的电梯管理系统,系统包含管理员,监管员、安全员、维保员角色,功能如下: 管理员:系统用户管理(监管员、安全员、维保员);系统公告&#…

哈弗猛龙,年轻人的新能源越野车

在 2023 成都车展上,哈弗汽车正式公布猛龙的预售价格,新车的预售价格区间为 16-19 万元,作为一台插电式混合动力车型,新车搭载 1.5THi4 的混动系统,提供纯电续航 102km 和 145km 两个纯电续航版本。 外观造型方面&…

数据库性能测试实践:慢查询统计分析

01、慢查询 查看是否开启慢查询 mysql> show variables like %slow%’; 如图所示: 系统变量log_slow_admin_statements 表示是否将慢管理语句例如ANALYZE TABLE和ALTER TABLE等记入慢查询日志启用log_slow_extra系统变量 (从MySQL 8.0.14开始提供&a…

Object —— Guide Groom

从skin几何体生成引导线,并在其节点内可进一步处理引导线;内嵌Hair Generate节点; 注:skin几何体应是静态的,使用Guide Deform使引导线跟随动态skin; Groom Source 可使用第二端口输入的Groom;可…

国内首个侧重能源金融交易的中国社科院-美国杜兰大学能源管理硕士

国内首个侧重能源金融交易的中国社科院-美国杜兰大学能源管理硕士 作为国内首个且唯一侧重能源金融交易的硕士项目,中国社科院与美国杜兰大学合作举办的能源管理硕士(Master of Management in Energy)项目旨在培养具备国际视野的高级能源金融…

微信小程序给 thinkphp后端发送请求出现错误 Wrong number of segments 问题的解决 【踩坑记录】

微信小程序给 thinkphp后端发送请求出现错误 Wrong number of segments 问题的解决 【踩坑记录】 微信小程序代码部分PHP后端部分错误显示解决方案及步骤(总结) 微信小程序代码部分 //给后端接口发送一个json请求,并且得通过token鉴权ToUpdatePwd(){wx.r…

【数据结构篇】线性表2 —— 栈和队列

前言:上一篇我们介绍了顺序表和链表 (https://blog.csdn.net/iiiiiihuang/article/details/132615465?spm1001.2014.3001.5501), 这一篇我们将介绍栈和队列,栈和队列都是基于顺序表和链表来实现的 目录 栈&#xff…

Metinfo4.0逻辑漏洞

搭建网站 MetInfo历史版本与文件,这里下载 需要进行安装 漏洞复现 点击会员中心进行注册 点击找回密码,输入刚刚创建的账号,然后抓包 登录后修改基本信息 直接抓包修改admin用户的密码 使用admin用户和密码654321,发现登录成功…

波奇学C++:继承

继承是为了复用代码&#xff0c;成员的变量或者成员函数 class Person { public:protected:string _name"li";int _age1; }; class Student :public Person { public:void print(){cout << _age;} protected:int _stuid2; }; 子类student公有继承基类Person,…

可视化工具Datart踩(避)坑指南(1)——不可复用的图表

作为目前国内开源版本最好用的可视化工具&#xff0c;Datart无疑是低成本高效率可供二开的可视化神兵利器。当然&#xff0c;免费的必然要付出一些踩坑的代价。本篇我们来讲一讲可视化工具Datart踩&#xff08;避&#xff09;坑指南&#xff08;1&#xff09;——不可复用的图表…

【小吉测评】高效简洁的数据库管控平台—CloudQuery

文章目录 &#x1f384;CloudQuery是什么&#x1f6f8;CloudQuery支持的数据源类型&#x1f354;CloudQuery社区地址&#x1f33a;如何使用&#x1f6f8;参考官方文档&#x1f6f8;参考视频教程&#x1f388;点击免费下载&#x1f388;立即下载即可&#x1f388;使用服务器完成…

基于Mendix移动原生的离线应用

一、前言 不同行业的企业会有特殊的业务场景&#xff0c;比如某些制造业的企业的工厂是物理隔离的&#xff0c;但工程师需要拿着平板输入很多生产数据&#xff1b;某些煤炭和矿业企业&#xff0c;在实际的工作区都是比较偏远&#xff0c;信号比较差&#xff0c;但是又需要用手…

gt基础教程

每日练习 吉他-结构 吉他-品 吉他谱 六线谱 调音器 试炼导航 每日练习 流程1&#xff1a; 右手拨弦: 大拇指单独练习 控制654弦&#xff0c;每根弦拨4下 6弦4下 5弦4下 4弦4下食指无名指练习 控制321弦&#xff0c;321、321练习&#xff0c; 然后321、123练习&#xff0…