git学习记录1(本地库管理)
学习参考地址: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(本地库管理)的更多相关文章
- Git学习记录 力做全网最强入门教程
目录 Git学习记录 力做全网最强入门教程 什么是GitHub? 什么是Git? Git的配置 Git的安装(只介绍windos操作系统下) Git的配置 至此我们的入门教程到此结束,更新中级教程要等 ...
- git学习记录2(远程库管理)
学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...
- Git学习记录--git仓库
Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...
- git 学习记录—— git 中的仓库、文件状态、修改和提交操作等
最近开始学习使用版本控制工具 git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...
- Git学习记录(一)
本篇文章介绍Git的本地使用 Git是什么? Git是世界上最先进的分布式版本控制系统. 那么什么是版本控制系统? 我们来举个例子,假设我创建了一个项目Project.1,里面写了一个README.t ...
- GIT学习记录4(标签管理与自定义git)
学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...
- GIT学习记录3(分支管理)
学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...
- 20130907.Git学习记录
1.任何文件在Git内都只有三种状态: ①已提交(committed):已提交表示该文件已经被安全地保存在本地数据库中了: ②已修改(modified):已修改表示修改了某个文件,但还没有提交保存: ...
- git学习笔记04-将本地仓库添加到GitHub远程仓库-git比svn先进的地方
第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步. 如果没有,打开Shel ...
随机推荐
- bzoj1211树的计数 x bzoj1005明明的烦恼 题解(Prufer序列)
1211: [HNOI2004]树的计数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3432 Solved: 1295[Submit][Stat ...
- 如何加大jvm的内存和tomcat的内存
如何扩大jvm的内存和tomcat的内存,如何让项目没有用的值得到及时的回收和清理,java项目 最佳答案 修改 tomcat 的内存方式:修改 catalina.bat在set JAVA_OPT ...
- Neo4j原生语句cc
Cypher语句 Cypher语句是Neo4j的图查询语言.以下例子来自Neo4j Browser,启动后在命令栏输入:play cypher即可1. 创建一个节点: 语法:CREATE (node- ...
- CentOS 安装MySQL(rpm)提示错误Header V3 DSA/SHA1 Signature
提示错误:Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies 错误原因:这是由于yum安装了 ...
- 内存Zone中的pageset成员分析
1: struct per_cpu_pageset __percpu *pageset; 首先,分析一个函数,__free_pages,这个函数是Buddy System提供的API接口函数,用于翻译 ...
- 前端(二十三)—— Vue环境搭建
目录 一.Vue环境搭建 一.Vue环境搭建 1.安装node 去官网下载node安装包 傻瓜式安装 万一安装后终端没有node环境,要进行node环境变量的配置(C:\Program Files\n ...
- 《代码大全2》读书笔记 Week4
<代码大全2>第8章:防御式编程 防御式编程的主要思想是子程序应该不因为非法的输入值被破坏,就好比开车时的防御式驾驶:你无法预估其他司机将会做什么,但你要采取措施保证当他人做出危险动作时自 ...
- linux 磁盘与文件系统管理 (鸟哥私房菜)
各种接口磁盘在Linux中的文件名分别为 /dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash随身碟等接口的磁盘文件名 /dev/hd[a-d][1-63]:为IDE接口的磁 ...
- 分布式版本控制工具Mercurial------Linux下hg命令的使用
1.关于hg命令选项: 每一个每一个命令选项都有一个长的名称,如hg log 命令会使用 –rev选项; 大多数选项拥有一个短的名称,如—rev有一个-r的短名: 长名称以两条横线(–)作为起始,短名 ...
- SOCK_SEQPACKE
The SOCK_SEQPACKET socket type is similar to the SOCK_STREAM type, and is also connection-oriented. ...