创建版本库

首先创建项目的目录,然后打开目录,在目录中右键,选择Git Init Here来完成项目仓库的初始化:

也可以,选择“Git Bash”打开命令窗口输入命令“git init”来完成项目的初始化:

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

添加文件到版本库

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

然后,使用命令git add将文件添加到仓库

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

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

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

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

文件修改

现在修改readme.txt内容,将第一行内容修改为“Git is a distributed version control system“,然后输入”git status“查看结果:

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

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

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

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

版本退回

继续修改readme.txt 并提交:

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

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

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

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

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

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

然后,输入 git log 查看当前版本库状态:

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

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

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

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

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

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

撤销修改

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

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

这是,我们输入 git  status

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

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

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

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

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

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

另外的

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

文件删除

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

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

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

Windows下Git Bash的基本使用相关推荐

  1. windows下git bash中文乱码解决办法

    一.解决办法1:(直接上图) 1.在git bash下,右键 出现下图,选择options: 2.选择"Text" 3.将"Character set"设置为 ...

  2. windows下git bash 添加zip命令功能

    windows下git bash 添加zip命令功能 https://udomain.dl.sourceforge.net/project/gnuwin32/zip/3.0/zip-3.0-bin.z ...

  3. windows下安装tmux_如何在Windows下 git bash 环境内使用tmux

    文档日期:2019年11月19日 以下步骤按照如下链接一一实践.https://blog.pjsen.eu/?p=440 . I did a little research and have foun ...

  4. Windows下Git Bash Here怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)

    使用Git方式clone和下载源码的方式已经很常用,可以通过SSH.HTTPS等方式下载,此处不啰嗦介绍,今天主要分享的是如何在Windows环境下,使用Git Bash命令操作文件或文件夹上传的方法 ...

  5. Windows下Git Bash 远程仓库

    Git是分布式版本管理系统,同一个Git仓库,可以分布到不同的机器上.怎么分布呢?最早,肯定只有一台机器一个原始版本,伺候,别的机器可以"克隆"这个原始版本库,而且每台机器的版本其 ...

  6. git安装,windows下git bash默认目录更改

    最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Window ...

  7. windows下git bash乱码问题

    网上有很多相关资料,备份一下: 1,/etc/gitconfig:[gui] encoding = utf-8 #代码库统一用urf-8,在git gui中可以正常显示中文[i18n] commite ...

  8. 解决Windows环境下Git Bash 不能输入中文的问题

    解决Windows环境下Git Bash 不能输入中文的问题 打开Git Bash后,对窗口右键->Options->Text->Locale改为zh_CN,Character se ...

  9. Windows10下git bash中添加wget下载工具

    Windows10下git bash中添加wget下载工具 文章目录: 一.说明 二.wget安装包的下载 三.添加环境变量 一.说明 Windows中git bash完全可以替代原生的cmd,而且更 ...

最新文章

  1. mysql 1061原因_MySQL死锁问题分析及解决方法实例详解(转)
  2. yii redirect
  3. windows下python使用fllow扩展持续读取文件的bug
  4. Css 浏览器兼容性及其其他常见问题
  5. linux识别fat16还是32,FAT16 、FAT32 、NTFS、LINUX区别.doc
  6. 测试对bug如何分析和定位
  7. mysql连接指定时区_MySQL创建JDBC连接时区问题
  8. 使用命令来进行modelsim仿真
  9. 计算机科学与技术专业职业素养,商丘工学院计算机科学与技术专业
  10. jQuery之创建节点
  11. K8S学习笔记之使用Fluent-bit将容器标准输入和输出的日志发送到Kafka
  12. 蓝牙芯片技术原理详解
  13. Qualcomm工具
  14. 在线视频下载网址合集
  15. 将base64指纹编码输出为指定大小的图片
  16. 深挖洞广积粮 旷视印奇谈7.5亿美元D轮融资后的战略布局
  17. 微信小程序之短信验证码
  18. Eclipse 简介
  19. 老五苏-34:慧眼独具 比起“大哥”苏-27,苏-34的个子要高大一些。
  20. 尚硅谷周阳老师2020最新Springcloud完整版学习

热门文章

  1. R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数
  2. pandas使用pd.concat纵向合并多个dataframe实战:纵向合并(ignore_index参数)、为纵向合并的多个dataframe设置标识符指定数据来源(通过字典方式设置数据来源键)
  3. R语言使用ggplot2包使用geom_density()函数绘制分组密度图(自定义调色板填充色、brewer调色板填充、灰度比例填充)实战(density plot)
  4. R语言Welch方差分析(Welch’s ANOVA)实战:Welch方差分析是典型的单因素方差分析的一种替代方法,当方差相等的假设被违反时我们无法使用单因素方差分析,这时候Welch’s出来救场了
  5. R语言Gamma分布函数Gamma Distribution(dgamma, pgamma, qgamma rgamma)实战
  6. 3D Slicer实现纤维追踪(大脑纤维束成像)+核磁共振影像数据处理
  7. R语言数据结构之矩阵
  8. 电力竞价(广东规则)详解与代码
  9. 生物信息学是干啥的?
  10. 用计算机弹奏lemon乐谱,原神乐谱lemon怎么弹 lemon乐谱弹奏方法教学