学习参考地址: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. thinkphp 图形处理

    使用Think\Image类进行图像处理功能,支持Gd库和Imagick库,包括对GIf图像处理的支持. 实例化类库 $image = new \Think\Image(); 默认使用GD库进行图像操 ...

  2. NOIP模拟测试18(T3待更新)

    T1: 直接模拟,详见代码注释. 复杂度$O(NM)$. Code: #include<iostream> #include<cstdio> #include<vecto ...

  3. 学习android文档 -- Adding the Action Bar

    1. Setting Up the Action Bar:users-sdk version 11以上可以使用holo主题:如果不使用holo主题,或者sdk版本较低,则需要在manifest文件的& ...

  4. 简单理解Ext.extend

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. (转)MySQL安装及配置指南

    转:http://wiki.ubuntu.org.cn/MySQL%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97 安装MySQL sudo apt-get install m ...

  6. JAVA JDBC大数据量导入Mysql

    转自https://blog.csdn.net/q6834850/article/details/73726707?tdsourcetag=s_pctim_aiomsg 采用JDBC批处理(开启事务. ...

  7. 使用并行ssh提高工作效率

    我们经常需要ssh到多个主机上执行相同的命令,为了提高效率,我们通常会自己写个脚本,循环遍历执行我们的命令,比如: for host in `cat hosts.txt`;do ssh usernam ...

  8. C++——Struct 和 Union区别

    1.在存储多个成员信息时,编译器会自动给struct第个成员分配存储空间,struct 可以存储多个成员信息,而Union每个成员会用同一个存储空间,只能存储最后一个成员的信息. 2.都是由多个不同的 ...

  9. DNF游戏币拼团

    DNF游戏币拼团活动方案 活动目的: 通过拼团的方式来实现老拉新和现实新用户转换,可以通过有需求的用户来告知好友来进行用户裂变 活动时间:预计时间2018.11.11-2018.11.23 SLOGA ...

  10. 净心诀---python3装饰器

    python3装饰器 装饰器作用 简单理解:可以为已有函数添加额外功能 例: 已有2个函数如下 def MyFunc1(): print("This is a print function1 ...