关于git是什么我想我也不用多说什么,其实关于git的操作在他们的官网上有详细的说明,一项新的技术官网上的一定是最权威的,所以学习一门技术我个人更倾向于看官网,下面的是git的官网https://git-scm.com/

一、下载与安装

选择自己对应的操作系统,然后进行傻瓜式安装即可。Windows

Linux中的安装用命令yum  install  git进行安装就行,后面的提示都选择Y就可以安装成功了,其实在官网上也有说明用Linux命令安排时的命令

点击上图片Linux/Unix按钮进入下面页面,下面页面详细说明了安装所用到的命令,有需要的朋友可以自行在官网查看,因为官网对每一个命令的描述都很详细了,这里就不过多说明

二、git的版本控制

以我自己的项目文件夹为例,进行版本控制操作

点击右键选择git bash here进入如下页面

用如下命令创建文件夹

创建完成后进入新创建的文件夹中

用命令查看会发现这个文件夹中现在是什么文件都没有的

在目录中执行 git init 命令初始化创建一个 Git 仓库了。

为了搞清楚git是怎么进行版本控制的,下面做一件事,就是创建一份文件然后操作这个文本文件。不断的修改这个文件的内容,每次修改之后,我需要记录修改的历史记录。

用命令git add a.txt将需要提交的代码从工作区添加到暂存区

其实git add 的命令用法有好几种,在这里先暂时补充下,git add [参数]  [--] <路径>作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用git commit命令进行提交了。

1  git add . 

不加参数默认为将修改操作的文件和未跟踪新添加的文件添加到git系统的暂存区,注意不包括删除

2 git add -u .

       -u  == --update ,表示将已跟踪文件中的修改和删除的文件添加到暂存区,不包括新增加的文件,注意这些被删除的文件被加入到暂存区再被提交并推送到服务器的版本库之后这个文件就会从git系统中消失了。

3 git add -A .

       -A == --all  , 表示将所有的已跟踪的文件的修改与删除和新增的未跟踪的文件都添加到暂存区。

操作完git add 后就是要提交到本地仓库了,用命令git commit  -m [message] ;其中[message] 可以是一些备注信息。

然后 git status 命令查看在上次提交之后是否有对文件进行再次修改。

为显示出git status这个命令的区别,我做一件事,把刚刚提交的文件修改一下

然后再操作一次git status命令

会发现他提示你需求再次git add和git commit一下,那就再来次呗

这些操作完成后那么本地库里就有了两个版本的内容了,现在有了一个需求,那就是要把版本回退到最初始提交的版本,怎么玩,先用git log命令查看下提交记录,会发现有两次提交

方式有很多,因为我们就提交了两个版本,所以回退到上个版本就可以用git reset  --hard HEAD^就可以了

再次打开文件会发现文件已回退到上一版本了

除了这个命令呢还有一个命令就是回退到指定版本,前面用git log命令时细心的人会发现有个版本id,就是commit

所以说想回退到指定版本就很简单了,直接git reset --hard [commit] 就可以了;细心的朋友可能还能发现一个问题,那就是用git log命令能看到回退后的提交版本信息,回退前的提交信息看不了,如果现在又有个需求,那就是别人后悔回退了,要还原,怎么搞,不急,我们能想到的问题,其实前辈们都遇到过,也做出了解决方案,还有一个命令叫做git reflog

看上图,这个命令可以把所有提交记录全展示出来,如果这时你想还原就更简单了,就用上面用的那个git reset  --hard [版本号]

这次再打开文件会发现发生了还原

是不是感觉这些命令也挺好玩的,后面我会说一些更好玩的东西,喜欢的朋友可以看下去

最新文章

  1. svn报错cleanup failed–previous operation has not finished; run cleanup if it was interrupted的解决办法
  2. web主题公园版权信息破解:script.js加密文件
  3. 使用GRUB 添加新的启动项 (menu entry)
  4. [转]Dll注入经典方法完整版
  5. 一起学习redis源码
  6. shell学习目录
  7. CentOS6.5 一键部署运行环境shell脚本
  8. Ubuntu11.10打开XDMCP,使用XManager远程管理
  9. javascript改变背景/字体颜色(Through the javascript to change the background and font color)
  10. 【转】Java如何克隆集合——深度拷贝ArrayList和HashSet
  11. sqlserver插入datetime
  12. nhibernate 更新 SqlDateTime 溢出问题
  13. Linux操作系统-命令-vmstat
  14. Linux系统下,在文件中查找某个字符串
  15. Latch导致MySQL Crash
  16. 5 Expressing future time
  17. day11 第一类对象 闭包 迭代器
  18. web实践小项目&lt;一&gt;:简单日程管理系统(涉及html/css,javascript,python,sql,日期处理)
  19. JSON-java
  20. 1. Python中如何使用其他语言?(python的胶水作用,python又叫胶水语言)

热门文章

  1. 微信小程序批量上传图片 All In One
  2. BGV币与YFI币、YFII币存在着怎样的相关性?
  3. nginx判断状态脚本
  4. idea添加汉化包之后出现的一些问题 解决方案
  5. SpringBoot2.x整合JavaMail以qq邮箱发送邮件
  6. Python基础语法函数
  7. 后端程序员之路 48、memcached
  8. 这是你没见过的不一样的redis
  9. 开发过程中遇到的js知识点总结,面试题等,持续更新
  10. 如果一个网站存在CSRF漏洞,可以通过CSRF漏洞做下面那些事情?