学习参考地址: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. WPF ListBox 横向排列

    WPF ListBox 横向排列   如果只是单纯的让ListBox可以横向配列,这样很简单,只需要更改ListBox的ItemsPanel模板就可以,例如: <ListBox><L ...

  2. delphi dll创建及调用

    第一章 DLL简单介绍由于在目前的学习工作中,需要用到DLL文件,就学习了下,在这里作个总结.首先装简单介绍下DLL:1,减小可执行文件的大小DLL技术的产生有很大一部分原因是为了减小可执行文件的大小 ...

  3. NX二次开发-使用MFC对话框不能用UF_UI_select等函数解决方法

    VC/MFC调用UG Dialog要进入加锁状态 加锁 UF_UI_lock_ug_access ( UF_UI_FROM_CUSTOM ); 此处为UF_UI_select的函数 解锁 UF_UI_ ...

  4. targetSdkVersion和与target属性的区别

    参考:http://blog.csdn.net/dai_zhenliang/article/details/8175781 AndroidMenifest.xml中targetSdkVersion和p ...

  5. sqlserver 登录记录(登录触发器)

    本人自用 sqlserver  账号登录的记录(记录表+登录触发器) --存储账号的登录记录信息 use [YWmonitor] go create table access_log ( ,) NOT ...

  6. Vue中时间的设置

    设置默认属性ct_month: null 方法: //默认显示今天getdatatime(){ this.ct_month= new Date(); }, //默认显示昨天getdatatime(){ ...

  7. 海外版本Google登录

    海外版本: 1.安裝谷歌安裝器:手机浏览器搜索“谷歌安装器”,安装酷安的好一些,地址: https://www.coolapk.com/apk/com.goplaycn.googleinstall 2 ...

  8. Linux之mysql-redis-python使用

    1. rpm包使用 1. 光盘挂载 mount /dev/cdrom /mnt cd /mnt ls 2. 安装rpm包 rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm ...

  9. PAT_A1124#Raffle for Weibo Followers

    Source: PAT A1124 Raffle for Weibo Followers (20 分) Description: John got a full mark on PAT. He was ...

  10. centos7简单安装配置mariadb

    CentOS 7下yum安装MariaDB yum install mariadb mariadb-server systemctl start mariadb #启动mariadb systemct ...