git版本认识及操

来源:互联网 发布:二阶矩阵的逆矩阵 编辑:程序博客网 时间:2024/06/05 11:58
该文章以收录: 《git探索之路》

目录

git探索之路——常用命令总结
git探索之路——配置及基础使用
git探索之路——版本认识及操作
git探索之路——分支与标签
git探索之路——解决冲突与团队合作
git探索之路——标签管理
git探索之路——配置与自定义

前言

这一章我们继续来探索git的使用,上一章我们已经介绍了如何利用git和远程仓库连接。

一、git的工作流程

说道git的工作流程,我们都只到git是分布式的版本控制工具,Git和svn的不同之处就是有暂存区的概念。我们先来了解以下概念:

工作区:就是你在电脑的目录
版本库:
版本库中分为暂存区(工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库)
远程仓库(就是我们的远程版本库,如github、码云)

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
下面来让我们根据廖雪峰老师的图示看一下:
git

git add 操作的变化;
git add 操作

git commit 操作后的变化
git commit操作

看了这些图片是不是对git的工作流程有了更深的认识

二、git的版本操作:

操作之前我们在我们的工作区新建一个mygit.txt文件。

1.管理修改

我们在我们新建的mygit.txt文件中添加一句 “my first git”
查看文件中的内容我们可以执行命令:

$ cat mygit.txtmy first git

提交后我们可以使用 git diff HEAD -- mygit.txt 命令查看工作区和版本库里的最新区别

git diff 

2.撤销修改

例如上面的mygit.txt文件中我们的内容是 my first git,我们不小心将其改成了 my last git

这时必须要及时更改,不改可能会丢工作怎么办,
第一种方法就是,我们手动把我们写的删掉,如果更改的太多这样做会很麻烦.
我们还可以使用 git checkout -- file

git checkout -- mygit.txt

命令git checkout -- readme.txt意思就是,把mygit.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。

我们可以执行cat mygit.txt 是否发生变化

3.版本回退

我们在使用git上传我们的文件时,我们有事会碰到,刚上传就发现传错了,但是已经覆盖了我们远程仓库的源文件了。这时候我们是不是很懵逼。不知所措,放心,git给我们留了一手,因为git存在历史记录,我们可以查看历史记录:

$ git log

git log命令显示从最近到最远的提交日志,可能git会为我们打印出很多的记录信息,如果我们想看简洁的历史记录我们可以这样:

$ git log --pretty=oneline3628162fb23d48395383f8f31179f24e0882e1e0 oneea34578d54d6d7dd233c827ed32a8cd576c5ee85 twocb926e7ea50ad11b8f9e909c05226233bf755030 three

上面一大串编码,这是commit id(版本号),电脑生成的,首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是EAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

好了,如果我们不小心提交错了,我们可以回退到上个版本,git会根据历史记录回退到上一个版本。

$ git reset --hard HEAD^
$ git log --pretty=oneline3628162fb23d48395383f8f31179f24e0882e1e0 oneea34578d54d6d7dd233c827ed32a8cd576c5ee85 two

4.删除文件

有时候我们想通过文件管理器把文件删除:

$ rm 文件

当然如果你想恢复文件可以用:

$ git checkout --  文件

恢复文件其实就是将我们暂存区内的版本替换了我们工作区的版本了。

git的版本操作基本就是这些了。

参考文献:廖雪峰git教程

原创粉丝点击