关于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 [版本号]

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

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

git操作初启篇(一)的更多相关文章

  1. Git操作(提高篇)

    Git操作(提高篇) 分支管理 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 假设你准备开发一个新功能,但是需要两周才能完成,第一周 ...

  2. Git操作(基础篇)

    Git操作(基础篇) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git的读音为/gɪt/.Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常 ...

  3. 第一篇:Git操作详解

    最近由于项目的需要,我需要负责整个项目的托管,其中涉及到很多Git相关的命令,所以就将之前用到的git相关的命令做了一个总结和归纳.由于开发环境是Linux,所以我接下来的操作命令均针对Linux环境 ...

  4. IDEA中的Git操作,看这一篇就够了!

    大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作. 环境准备 使用前需要安装一个远 ...

  5. 转 git操作小结

    UNDER MIT LICENSE. 公司几乎所有的项目都是使用 git 仓库来管理代码,以前对 git 只有些肤浅的了解,每次提交代码或者上线的时候总是会提心吊胆,生怕出现一些未知的问题.经过三个月 ...

  6. Git命令之回退篇 git revert git reset

    Git command之回退篇 欲练回退 必先了解:HEAD.index.WorkingCopy HEAD: 当前所在的分支版本顶端的别名,也就是最新的一次commit. git commit 之后与 ...

  7. webstorm的git操作使用

    0. 前言 在上一篇文章中,讲述了使用webstorm去调试node程序,最近研究了一下如何使用webstorm去操作git. 对于git的使用,大家的使用方式均有不同,最王道的方式非命令行莫属,基于 ...

  8. Intellij 中的git操作 转!

    http://blog.csdn.net/lovesummerforever/article/details/50032937 Git原理以后会分章节介绍,本次主要说一下intellij怎样操作git ...

  9. 使用Git操作GitHub代码入门教程

    GitHub除了网页操作外,还可以借助本地客户端git(或github for windows)来增删修改远程代码.使用Git操作来连接GitHub可以通过Https或SSH方式,使用SSH方式可以免 ...

随机推荐

  1. github & code owners

    github & code owners https://help.github.com/en/github/creating-cloning-and-archiving-repositori ...

  2. Python学习笔记_类

    class Animal(object): # 定义父类animal def __init__(self,name,sound): # 初始化属性 name sound self.name = nam ...

  3. Spark在处理数据的时候,会将数据都加载到内存再做处理吗?

    对于Spark的初学者,往往会有一个疑问:Spark(如SparkRDD.SparkSQL)在处理数据的时候,会将数据都加载到内存再做处理吗? 很显然,答案是否定的! 对该问题产生疑问的根源还是对Sp ...

  4. rar密码破解工具汇总

    rar密码破解工具汇总 前言 假如酷爱在网络上找各种资源的你,经历千辛万苦终于找到了一个rar打包的文件,兴奋地慌忙点击,可打开才发现是加密的,相信这样的场景很多人都遇到过,今天就针对压缩文件密码的破 ...

  5. Git 命令将电脑上的文件上传到 Github

    1.在电脑上安装 Windows 版 Git下载地址:https://git-scm.com/downloads2.使用 Git GUI 生成 SSH Key 3.将 SSH Key 添加到 Gith ...

  6. window下象MAC一样工作的工具

    前面是MAC 后面是windows对应工具,只是做一个列表说明,具体使用自行百度 1.item2 vs Cmder 命令行 2.Homebrew vs Chocolatey 包管理器 3.Spotli ...

  7. 实现 Abp Vnext Pro

    Abp Vnext Pro 的 Vue 实现版本 开箱即用的中后台前端/设计解决方案 知识点 .Net Core5.0 Abp Vnext 4.x , Ant Design, Vue2.x Mysql ...

  8. C++多文件结构和预编译命令

    下面随笔将给出C++多文件结构和预编译命令细节. 多文件结构和编译预处理命令 c++程序的一般组织结构 一个工程可以划分多个源文件 类声明文件(.h文件) 类实现文件(.cpp文件) 类的使用文件(m ...

  9. HDOJ-6645(简单题+贪心+树)

    Stay Real HDOJ-6645 由小根堆的性质可以知道,当前最大的值就在叶节点上面,所以只需要排序后依次取就可以了. #include<iostream> #include< ...

  10. pytorch(11)模型创建步骤与nn.Module

    模型创建与nn.Module 网络模型创建步骤 nn.Module graph LR 模型 --> 模型创建 模型创建 --> 构建网络层 构建网络层 --> id[卷积层,池化层, ...