小白学Git(1)——学会创建和提交

写在前面

对于一个程序员来说,Git现在无疑是一项必须要掌握的技能了,一开始并没有觉得它的作用,可是随着代码记录越来越多,自己想要把自己的代码都做个备份,这才想到是要学一下了,当然,git的功能远远不是备个份这么简单。今天在网上跟着廖雪峰老师的教程以及某些优秀的博客,对git算是有个简单的了解,于是想整理一下。

首先,我是一个纯纯的小白,以前从来没有使用过类似git的工具,甚至连windows的cmd指令都没用过几次,所以整理的东西会特别基础,并且内容不一定完全正确,所以如果有错误的地方请大佬能够指点一下,万分感谢!

正文开始

1.安装git

这没什么好说的,按照廖老师的教程来就可以。
源地址:各系统平台Git安装教程

2.使用Git bash的一些基础操作

  1. cd : change directory的简写,改变目录的意思,就是切换到哪个目录下, 如 cd e:fffcd e: + cd fff 切换 E 盘下面的fff 目录。

    注意:如果从主目录下开始切换时使用冒号进入第一个子目录(如上),之后要使用反斜杠来进入子目录(如cd e:blog/m1/m2)

    当我们用cd 进入文件夹时,我们可以使用 通配符*, cd f* , 如果E盘下只有一个f开头的文件夹,它就会进入到这个文件夹.

  2. cd .. 回退到上一个目录。我们在写js,或css时,我们引入文件时,.. 表示的就是上一个目录, 所以 cd ..回退到上一个目录就很好理解了。
    注意:

    1. cd 和两个点点..之间有一个空格, .
    2. 往上一层用cd .. ,往上两层用cd ../..**
  3. pwd : print working directory, 打印工作目录,它会显示我们当前所在的目录路径。

  4. ls: list, 列出当前目录中的所有文件, 只不过ll(两个ll)列出的内容更为详细。

  5. mkdir : 新建一个目录,就是新建一个文件夹. 如mkdir src 新建src 文件夹.

  6. touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。

  7. rm: 删除一个文件, rm index.js 就会把index.js文件删除.

  8. rm -r : 删除一个文件夹, r (recusive 是递归的意思), 删除用的就是递归,先删除文件夹里面的内容,再删除文件夹。 rm -r src 删除src目录。

  9. mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下.

  10. reset 清屏,把git bash命令窗口中的所有内容清空。

3.创建版本库

首先无论你是使用手动方式还是使用git命令,你都要建一个文件夹用来当做本地的版本库。在此我使用git命令:

mkdir startgit
cd startgit

现在,我打算将startgit文件夹作为我的本地仓库,接下来就是初始化

这里写图片描述

好了,大功告成,现在我们创建了git版本仓库。

文件的提交

创建了版本库肯定是要用来放文件的,我在仓库文件夹下创建一个txt文件(此处需要注意不要用windows的记事本和word等文本来编辑文件内容,可以下载一个编辑器并将编码格式改为utf-8),我现在建立一个名为index.txt的文件。

这里写图片描述

接下来,有必要给大家说一下git库的工作区与暂存区:如图,

这里写图片描述

其中工作区是我们所能看到的文件目录,而版本库分未stage区和master区,而stage成为暂存区,意思就是说此区的内容并不算是提交,只是放在这里供修改和提交。
那么提交文件到仓库的操作就好理解多了;

添加文件到仓库
第一步: git add添加文件到暂存区,如(git add index.txt);
注意:此处添加的文件readme.txt要在git可以管理的仓库目录或子目录下。
第二步:git commit -m’更改内容记录’告诉git,把文件提交仓库;
注意:此处的不要遗漏了-m后的内容,不然会跳入一个让你输入commit message的页面,如果不小心按到了,百度一下,很简单就能跳出来

这里写图片描述

到此,就算是将一个文件提交到的本地仓库。此时,你出生在2017年!

不同版本的修改与提交

现在,你10岁了,时间到了2027年。(对文件进行了修改)
这里写图片描述

现在输入git status来查看工作区的状态(看看是不是再做梦);
这里写图片描述

从图中可以看出index.txt文件为红色,并且根据提示是修改没有添加至暂存区以进行提交。(真他妈10是十岁了,叹气);

而且此时,我们可以看看我们着10年有什么变化;git大仙给了你一个口令:

git diff
这里写图片描述

一看,发现就是长了十岁,大概更帅了!

好,现在我们就去把自己的年龄建档上交国家!

还记得方法吧:git add index.txt
再进行一次查看:
这里写图片描述
此时可以看到,文件颜色变为绿色,修改已经暂存(档案已经建立好了),等待提交(给国家)。

接着就提交,此时我们是第二次提交了;git commit -m’2027年’

这里写图片描述

再次查看;
这里写图片描述
告诉我们,已经在master库里了,工作区很干净!

但是问题来了,你现在觉得上学好痛苦啊,很想回到刚出生那年,不用上学,整天吃睡玩,方法有两种,第一种,重新投胎,也就是我直接拉出来源文件把修改的部分删掉再重新提交,因为我知道自己修改了哪里,并且要修改的地方就一行,十分简单。但是,投胎学问太深了,万一投错胎可就麻烦大了!所以你想着要是能穿梭时空就好了,来,默念,git大法好!

事实上,git会记录下我们的每一次提交,并给每次提交赋一个唯一的id值,这个id值在每次commit时就能看到,如上面’2027年’提交的界面就能看到[master 222019c],masert 字母后面的数字字母组合(其实是一个16进制的数字)就是那次提交的id.
只要有id,我们就能任性的穿梭时光!

穿梭时光前,首先需要知道你想要回到哪一年,也就是你想要退回的版本id号。

git log 查看我们提交的历史记录

这里写图片描述

当然,你也可以这样*git log –pretty=oneline,让信息一行行的显示:

这里写图片描述

此图中黄色的数字字母串就是当次提交版本的id.也就是你当时存档的年龄。

接下来,系好安全带,准备穿越了。而进入时空穿梭机的git口令为:

git reset –hard commitId ,上图:

这里写图片描述

恭喜你,穿越成功,你现在是一个嗷嗷待哺的婴儿啦!细心的小伙伴可能已经发现,第一,在上两次操作中,有个HEAD,其实,在git中,它就是一个指向当前文档的指针,所以在穿梭前它指向2027年,但现在它指向了2017年;第二,我们看到窗口里每个版本的id那么老长,为啥我输入的那么短,当然,不是我短,是因为这么短就足够识别不同的id了,也就是说,够用就行啦!

当然,你虽然没记住要返回的年号,但是你要是知道你在此之前存档了几次,仍然是可以返回的!

假如你想返回上一个年代:git reset –hard HEAD^;可以完成同样的事情,假如你要返回上两个年代呢?git reset –hard HEAD^^;有同学一看就明白了,就是返回上几个就HEAD后面加几个^符号,那我有人想返回到上100个年份怎么办来,什么?加一百个^,我只能说你们对git一无所知!使用*git reset –hard HEAD~100才是正解,当然,返回上一个你你把100改成1,同样好使!

不过:使用git reset --hard HEAD^可以回到上一个版本,但是在windows下有可能会失效,解决办法:
1.使用通用的git reset --hard HEAD~1
2.使用git reset --hard "HEAD^"

可是,现在返回后你发现自己既不会说话,也不会走路,最过分的是你看着美食你也没法吃,十分后悔!如果你运气好,还记得你十岁时的年号,还是可以重返未来的:

这里写图片描述

但很不幸,你当时穿梭时空的时候太激动,忘了!
这时候,对,默念git大法好!,看到你可怜不已的样子,git忍不住给你丢了一个口令:
git reflog 查看命令历史

这里写图片描述

从这里你可以看到你对版本的各种骚操作,也会显示每个版本的id,此时,老司机,上车吧!
git reset –hard 222019c

兜兜转转,还是回到了远点!

本节到此结束

送大家一张图,慢慢看!
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值