学习GitHub(二): git基本命令

强烈声明:本文参考涂根华的"Git使用教程"文章,这篇文章写的实在太好了,这里自己再亲自实践一遍,加深印象。

(一).创建repository

版本库又名仓库,英文名repository,可以简单的理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件还原。

所以创建一个版本库也非常简单,如下我想在D盘git-repositories目录下建立一个first-repo参考,可以使用如下命令:

上面这些操作,只不过是通过linux命令创建了一些目录,和git没有任何关系。为了能让git管理这个目录(仓库),需要使用git init命令:

这时候你当前目录first-repo下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了。如下:

(二).把文件添加到版本库中

首先要明确下:所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的源码等,Git也不列外。版本控制系统可以告诉你每次的改动,但是对于图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的具体变化,只能把二进制文件的每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。

我在版本库first-repo目录下新建一个记事本文件readme.txt,内容如下:11111111

第一步:使用命令 git add readme.txt添加到暂存区里面去,如下:

如果和上面一样,没有任何提示,说明已经添加成功了。

第二步:用命令 git commit告诉Git,把文件提交到仓库。

现在我们已经提交了一个readme.txt文件了,下面可以通过命令git status来查看是否还有文件未提交:

说明没有任何未提交的文件,但是我现在继续来改下readme.txt内容,比如我在下面添加一行2222222222内容,继续使用git status来查看下结果:

上面的命令告诉我们readme.txt文件已被修改,但是还没有提交。接下来我想看下readme.txt文件到底改了什么内容,如何查看呢?可以使用如下命令:git diff readme.txt

如上可以看到,readme.txt文件内容从一行11111111改成了二行,添加了一行22222222内容。知道了对readme.txt文件做了什么修改后,我们可以放心的提交到仓库了,提交修改和提交文件是一样的2步(第一步是git add  第二步是:git commit)。

(三).版本回退

我们已经学会了修改文件和提交文件,现在继续对readme.txt文件进行修改,再增加一行内容为33333333333333,继续执行命令如下:

现在已经对readme.txt文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 演示如下所示:

git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交,最近的一次是,增加内容为333333.上一次是添加内容222222,第一次默认是 111111。如果嫌上面显示的信息太多的话,我们可以使用命令设置, 演示如下:

现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,要使用什么命令呢?可以使用如下2种命令,第一种是:git reset  --hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset  --hard HEAD~100 即可。未回退之前的readme.txt内容如下:

如果想回退到上一个版本的命令如下操作:

再来查看下 readme.txt内容如下:通过命令cat readme.txt查看

可以看到,内容已经回退到上一个版本了。我们可以继续使用git log 来查看下历史记录信息,如下:

我们看到 增加333333 内容我们没有看到了,但是现在我想回退到最新的版本,如:有333333的内容要如何恢复呢?我们可以通过版本号回退,使用命令方法如下:git reset  --hard 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?要如何知道增加3333内容的版本号呢?可以通过如下命令即可获取到版本号:git reflog 演示如下:

通过上面的显示我们可以知道,增加内容3333的版本号是 6fcfc89。我们现在可以命令git reset  --hard 6fcfc89来恢复了。演示如下:

可以看到目前已经是最新的版本了。

(四).理解工作区与暂存区的区别

工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。

版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

我们前面说过使用Git提交文件到版本库有两步:

第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。

第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。

如果我们修改了工作区中的文件,但是并没有add到暂存区中,那么这些修改并不能commit当前分支上:

(五).撤销修改

比如我现在在readme.txt文件里面增加一行内容为555555555555,我们先通过命令查看如下:

在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复以前的版本,现在我可以有如下几种方法可以做修改:

第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。

第二:我可以按之前的方法直接恢复到上一个版本,使用 git reset  --hard HEAD^

但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作呢?git checkout  -- file 可以丢弃工作区的修改,如下命令:git checkout  --  readme.txt

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

1.readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。

2.另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。

对于第二种情况,我想我们继续做demo来看下,假如现在我对readme.txt添加一行 内容为6666666666666,我git add 增加到暂存区后,接着添加内容7777777,我想通过撤销命令让其回到暂存区后的状态。如下所示:

(六).删除文件

假如我现在版本库first-repo目录添加一个文件a.txt,然后提交。如下:

想删除a.txt最简单的方式:直接把目录下的a.txt删除就可以了。这种做法,并没有把版本库中的文件彻底删除,还是可以恢复的。

如果我们要彻底删除文件,必需在删除之后commit,演示如下:

时间: 2024-10-11 13:27:17

学习GitHub(二): git基本命令的相关文章

Mongodb学习笔记二(Mongodb基本命令)

一.Mongodb命令 说明:Mongodb命令是区分大小写的,使用的命名规则是驼峰命名法. 对于database和collection无需主动创建,在插入数据时,如果database和collection不存在则会自动创建. 常用命令 help命令通过此命令可以看到一些最基本的命令,如图: use命令例如命令[use demodb],创建demodb,不用担心demodb不会创建,当使用use demodb 命令创建第一个collection时会自动创建数据库demodb,如图: 插入数据使用

git(学习之二)编译安装

Git学习笔记#####################################################qq:1218761836 qq群:150181442##################################################### Git安装1.    Yum安装gityum install git –yyum install -y  git-email git-gui gitk git-svn git-cvs    其中git-svn  git

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚

Git学习(二)

远程仓库 Git是分布式版本控制系统,同一个Git仓库可以分布到不同的机器上. 最早只有一台机器上有一个原始版本,此后,别的机器可以"克隆"这个原始版本库,而且每台机器病没有主次之分,其实一台机器只要不在同一个目录下,也是可以克隆多个版本库的,但没什么意义. GitHub 充当服务器,其他每个人都从这个"服务器"仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库,也从服务器仓库拉取别人的提交. 你的本地仓库Git和GitHub仓库之间的传输是通过SSH

Github与Git的学习

一.Github与Git的简介与区别 1.Github是一个基于Git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办.迄今拥有59名全职员工,主要提供基于git的版本托管服务. 2.Git是一款开源的分布式版本管理工具,git的诞生也是相当传奇的,由Linux之父-Linus Benedict Torvalds开发

git学习——Github关联(2)

一.参考学习链接 1.重点看Github与Git的关联. http://www.cnblogs.com/schaepher/p/5561193.html#github 2.git的全面详细介绍. http://www.cnblogs.com/Genesisx/p/5556531.html 3.设置或者取消代理 https://gist.github.com/laispace/666dd7b27e9116faece6 Github与Git关联 本地Git和Github的连接 Step-1:到Git

git 上传代码到GitHub 以及git删除github上文件和文件的命令

Git入门 如果你完全没有接触过Git,你现在只需要理解通过Git的语法(敲入一些命令)就可以将代码上传到远程的仓库或者下载到本地的仓库(服务器),可知我们此时应该有两个仓库,就是两个放代码的地方,一个是本地,一个是远程的(如Github).企业或者团队可以通过Git来对项目进行管理,每个程序员只需将自己的本地仓库写好的代码上传到远程仓库,另一个程序员就可以下载到本地仓库了.今天我们就从Git终端软件的安装开始,再这之前我也简单介绍一下Github. Git上传代码 一.准备工作 1.注册一个g

学习Git---20分钟git快速上手

学习Git-----20分钟git快速上手 (图片已修复)在Git如日中天的今天,不懂git都不好意思跟人说自己是程序猿.你是不是早就跃跃欲试了,只是苦于没有借口(契机). 好吧,机会就在今天. 给我20分钟,是的,只要20分钟, 让你快速用上git. 我们废话不多说,直接来干货. 我们将会介绍以下几点: 一, 什么是git 二,使用git的一般开发流程 三,快速安装新建项目.holloworld. 开始: 一,什么是git. 阅读本文的前提是你知道或者用过至少一种源代码管理工具,比如:SVN,

Git基本命令行操作 (转)

Git远程操作详解 作者: 阮一峰 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值