学习参考地址: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 1 file changed, 2 insertions(+) create mode 100644 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文件与删除变更的操作: