学习参考地址: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. bzoj1211树的计数 x bzoj1005明明的烦恼 题解(Prufer序列)

    1211: [HNOI2004]树的计数 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3432  Solved: 1295[Submit][Stat ...

  2. 如何加大jvm的内存和tomcat的内存

    如何扩大jvm的内存和tomcat的内存,如何让项目没有用的值得到及时的回收和清理,java项目 最佳答案   修改 tomcat 的内存方式:修改 catalina.bat在set JAVA_OPT ...

  3. Neo4j原生语句cc

    Cypher语句 Cypher语句是Neo4j的图查询语言.以下例子来自Neo4j Browser,启动后在命令栏输入:play cypher即可1. 创建一个节点: 语法:CREATE (node- ...

  4. CentOS 安装MySQL(rpm)提示错误Header V3 DSA/SHA1 Signature

    提示错误:Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies 错误原因:这是由于yum安装了 ...

  5. 内存Zone中的pageset成员分析

    1: struct per_cpu_pageset __percpu *pageset; 首先,分析一个函数,__free_pages,这个函数是Buddy System提供的API接口函数,用于翻译 ...

  6. 前端(二十三)—— Vue环境搭建

    目录 一.Vue环境搭建 一.Vue环境搭建 1.安装node 去官网下载node安装包 傻瓜式安装 万一安装后终端没有node环境,要进行node环境变量的配置(C:\Program Files\n ...

  7. 《代码大全2》读书笔记 Week4

    <代码大全2>第8章:防御式编程 防御式编程的主要思想是子程序应该不因为非法的输入值被破坏,就好比开车时的防御式驾驶:你无法预估其他司机将会做什么,但你要采取措施保证当他人做出危险动作时自 ...

  8. linux 磁盘与文件系统管理 (鸟哥私房菜)

    各种接口磁盘在Linux中的文件名分别为 /dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash随身碟等接口的磁盘文件名 /dev/hd[a-d][1-63]:为IDE接口的磁 ...

  9. 分布式版本控制工具Mercurial------Linux下hg命令的使用

    1.关于hg命令选项: 每一个每一个命令选项都有一个长的名称,如hg log 命令会使用 –rev选项; 大多数选项拥有一个短的名称,如—rev有一个-r的短名: 长名称以两条横线(–)作为起始,短名 ...

  10. SOCK_SEQPACKE

    The SOCK_SEQPACKET socket type is similar to the SOCK_STREAM type, and is also connection-oriented. ...