学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

本编随笔只是自己对git学习的笔记,是按着参考地址的讲解学习的记录。

一、安装与创建版本库

1、安装

window只需要下载git,按步骤安装即可。

安装完成后打开Git Bash命令行窗口,进行设置,设置用户名与email地址:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

2、创建版本库

1)找一个地方创建一个空目录,Windows下可以在某个文件加下新建就可以,也可以用命令创建,命令和Windows批处理命令一样,下面是本人在d盘下创建操作:

Razor@Razor-pc MINGW64 ~
$ cd D: Razor@Razor-pc MINGW64 /d
$ pwd
/d Razor@Razor-pc MINGW64 /d
$ cd gittest Razor@Razor-pc MINGW64 /d/gittest
$ pwd
/d/gittest Razor@Razor-pc MINGW64 /d/gittest
$ dir
demo Razor@Razor-pc MINGW64 /d/gittest
$ mkdir learngit Razor@Razor-pc MINGW64 /d/gittest
$ cd learngit Razor@Razor-pc MINGW64 /d/gittest/learngit
$ pwd
/d/gittest/learngit

2)把新创建的目录变成Git可以管理的仓库,在目录下使用git init命令:

$ git init
Initialized empty Git repository in D:/gitTest/learngit/.git/

这样D:/gitTest/learngit目录就是git库了,会生成一个.git隐藏文件

二、使用git对版本的管理

1、添加文件到Git仓库

创建一个readme.txt文本文件(放在learngit目录或子目录下):

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

添加文件到Git仓库,分两步:

第一步,使用命令git add <file>把文件添加到暂存区,可反复多次使用,添加多个文件;

第二步,使用命令git commit把暂存区的内容提交到分支,完成添加。

$ git add readme.txt                                    #可以添加多个文件后,再执行git commit命令

$ git commit -m "wrote a readme file"                   #m参数后面是变更说明
[master (root-commit) 23e921e] wrote a readme file
file changed, insertions(+)
create mode readme.txt

工作区与暂存区:

工作区就是我们创建的learngit文件夹,版本库就是.git这个隐藏文件,里面的index(stage)文件就是暂存区:

2、工作区的状态查看

git status :工作区当前状态

git diff:修改的内容,工作区和暂存区的内容比较,加上'--cached' 参数就是是暂存区(stage)和分支(master)的比较 

如把readme文件修改一下:

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

修改完后,没有提交到git库,使用这两个命令查看的结果:

完成添加到git库操作第一步git add后,工作区的状态为:

完成添加到git库操作第二步git commit后,工作区状态为:

3、版本回退

git reset --hard commit_id :版本回退命令,commit_id是回退的版本id,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,上N个版本写成HEAD~N。

git log :显示从最近到最远的提交日志,加上'--pretty=oneline'参数,可以简化日志信息。

git reflog :查看命令历史,以便确定要回到未来的哪个版本。

把readme.txt再变更一个版本:

Git is a distributed version control system.
Git is free software distributed under the GPL.

使用git log查看有那些提交日志:

下面使用git reset回到上一个版本:

如果我们想回到add GPL这个版本,又不知道他的版本id,这时可以使用git reflog查看命令历史来获得这个版本的id:

4、修改撤销

git checkout -- file :放弃工作区的修改内容,如果git add提交过文件到暂存区,就会使工作区的内容与暂存区的保持一致;如果没有提交过,就与分支的版本内容保持一致。

git reset HEAD file :删除暂存区的提交文件。

在工作区作了修改,想放弃这次修改,使用git checkout -- file:

修改的内容已经提交到了暂存区,想删除这次提交到暂存区的内容,使用git reset HEAD file:

5、删除版本库文件

git rm file :删除版本库里的文件,因为删除文件这个变更git add没法提交到暂存区,所以用这个git rm 向暂存区提交了一个删除文件的变动,所以最后这个变动还需要git commit命令去完成。

如下是添加一个新的test.txt文件与删除变更的操作:


git学习记录1(本地库管理)的更多相关文章

  1. Git学习记录 力做全网最强入门教程

    目录 Git学习记录 力做全网最强入门教程 什么是GitHub? 什么是Git? Git的配置 Git的安装(只介绍windos操作系统下) Git的配置 至此我们的入门教程到此结束,更新中级教程要等 ...

  2. git学习记录2(远程库管理)

    学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...

  3. Git学习记录--git仓库

    Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...

  4. git 学习记录—— git 中的仓库、文件状态、修改和提交操作等

    最近开始学习使用版本控制工具  git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...

  5. Git学习记录(一)

    本篇文章介绍Git的本地使用 Git是什么? Git是世界上最先进的分布式版本控制系统. 那么什么是版本控制系统? 我们来举个例子,假设我创建了一个项目Project.1,里面写了一个README.t ...

  6. GIT学习记录4(标签管理与自定义git)

    学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...

  7. GIT学习记录3(分支管理)

    学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...

  8. 20130907.Git学习记录

    1.任何文件在Git内都只有三种状态: ①已提交(committed):已提交表示该文件已经被安全地保存在本地数据库中了: ②已修改(modified):已修改表示修改了某个文件,但还没有提交保存: ...

  9. git学习笔记04-将本地仓库添加到GitHub远程仓库-git比svn先进的地方

    第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步. 如果没有,打开Shel ...

随机推荐

  1. 24. Jmeter GUI 及NON GUI实现分布式

    什么是分布式: Jmeter的集群模式可以让我们将多台机器联合起来一起产生负载,从而弥补单台机器负载生成能力不足的问题. 假设我们的测试计划会产生100个threads,我们使用6台机器进行分布式测试 ...

  2. 9. DMA

    9.1 介绍 Direct memory access(DMA) 直接存储器访问. 这两个DMA控制器总共有16个流(每个控制器8个),每个流用于管理来自一个或多个外围设备的内存访问请求.每个流总共可 ...

  3. 1044 Shopping in Mars (25 分)

    Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diam ...

  4. 前端(十八)—— jQuery高级操作:选择器、文本属性与类、事件、文档操作、动画、结构关系

    JQ选择器.文本属性与类.事件.文档操作.动画.结构关系 可参考jQuery的API文档 一.选择器 1.css语法匹配 标签 | 类 | id | 交集 群组 | 后代 | 兄弟 伪类 | 属性 $ ...

  5. sip会话流程以及sip介绍(3)

    1.mtk_ims_mo_sip报文交互流程 log: 步骤1:ATD触发MO呼叫尝试步骤2:VDM选择ADS到IMS.步骤3:触发VoLTE UA来设置MO调用.步骤4:SIP信息到P-CSCF进行 ...

  6. jenkins集成sonar代码审核工具

    在项目测试管理过程中,项目上线很多时候时间仓促,导致代码质量不高,测试时间不充分会导致线上出现各种各样的问题,这个时候一方面是增加测试的质量把控,还要从根本上解决开发小哥的代码质量问题.而Sonar这 ...

  7. 【转载】Spring 源码分析之 bean 实例化原理

    本次主要想写spring bean的实例化相关的内容.创建spring bean 实例是spring bean 生命周期的第一阶段.bean 的生命周期主要有如下几个步骤: 创建bean的实例 给实例 ...

  8. Redis数据结构之快速列表-quicklist

    链表 在Redis的早期版本中,存储list列表结构时,如果元素少则使用压缩列表ziplist,否则使用双向链表linkedlist // 链表节点 struct listNode<T> ...

  9. 注册页面-使用form模块搭建

    基于Django的form模块,快速的搭建注册页面,每个限制条件,都放在form模块里面,不单独对每一项编写标签,使用模版的 for 循环来渲染. 首先设置form模块 在blogs模块下创建一个bl ...

  10. 2019-4-26-VisualStudio-开发文件自定义工具单文件生成工具

    title author date CreateTime categories VisualStudio 开发文件自定义工具单文件生成工具 lindexi 2019-04-26 10:49:32 +0 ...