前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教妹子用 git(一)

教妹子用 git(一)

作者头像
程序员小浩
发布2020-06-17 19:54:46
4540
发布2020-06-17 19:54:46
举报
文章被收录于专栏:小浩算法

最近和一个研一妹纸合作弄自己的网站,然后发现妹纸不太懂 git。于是就写下这篇文章。看看能不能言简意赅的教会一个新手如何使用 git。

os:本文所有命令,没有查任何资料,纯粹本人大脑记忆。换句话说,下面所有的命令,都是必须掌握(记忆)的。

01

PART

啥是 git

简单理解为 git 是用来在多人间管理内容的,因为代码也属于内容,自然也可以使用 git 管理。

git,是个软件,所以自然可以安装。官方的安装地址为:

https://git-scm.com/download/win

安装之后,就可以用了。上面介绍里说了,git 是用来管理内容的。所以咱们就可以去到我们要管理的内容目录下,执行 git init,意味着对该文件夹开始进行 git 管理。

但是,如果一个目录下,你既有想纳入 git 管理的内容,又有不想纳入 git 管理的内容,那该咋办?此时 git add 出现了,其实说白了就是想对哪些文件纳入 git 管理,就用 git add 添加。没添加的,自然就不被管理。

比如我创建出来两个文件:

眼尖的妹纸自然可以发现这里我执行了一个 git status,这玩意干嘛的?其实就是看看哪些文件再被管理。

这句话的意思就是说此时这两个文件刚创建,还没有被纳入管理中。然后我为了省事,我直接告诉妹子,你直接 git add -A 就行,换句话说,我们把这两个文件都纳入到管理中。此时如果再执行 git status,可以看到两个文件变绿色了。

也就是说,这两个新加的文件都被管理起来了。

总结一下:

  • git init,对要管理的文件夹开始管理。
  • git add [参数],对文件夹下的内容开始执行管理。
  • git add -A, 对文件夹下的全部内容执行 git 管理。
  • git status,看看要管理的文件夹下的文件都是个什么鬼。

02

PART

版本控制

妹纸很兴奋的告诉我,上面的很简单,已经学会 git 了。我说不,咱们才刚刚开始!

上面我们说了,可以通过 git add 来把要管理的文件纳入到 git 管理中。但是这仅仅只是纳入,并没有真实的管理起来。

那啥是真实的管理呢?版本控制。比如你写个文件,今天写第一版,明天写第二版,后天发现第二版写的有点问题想回到第一版。

我们通过 git commit,对已经纳入 git 管理的文件,进行版本控制。回到我们上面的那个图:

此时 1.txt 和 2.txt 已经被纳入到 git 管理中。我们通过 git commit 来进行提交。

当我们 commit 后,再自行 git status,会发现此时已经没有那个绿色的东东了。也就是说,此时刚才的两个文件,已经拥有了一个版本。

但其实,这个版本并不是跟着文件走的,而是跟着 commit 记录走的。所以,如果是工作中使用。我们尽可能的把一次相关的内容维护成一次commit记录。

然后,其实我们刚才说的通过 git add 纳入到 git 内容管理的过程,专业点叫做将内容放入暂存区;而通过 git commit 提交的过程,专业点是说把暂存区的内容放入到仓库区

自然,开发 git 的人员不是傻子。所以不管是将文件纳入到 git 管理,又或者是将已经管理的文件开始进行版本控制。我们都可以选择所有,亦或是选择多个。

总结一下:

  • git commit,提交暂存区到仓库区。说人话:再已经纳入 git 管理的内容中选择要对其进行版本控制的内容。每一次commit,意味着一次版本。
  • 因为每一次 commit 记录,都需要有一个版本说明。所以我们常使用:git commit -m "版本说明"。不用,会报错。
  • git log,查看历史 git 版本。

03

PART

第二堂课

搞错了怎么办?

搞错了,就回滚。因为回滚,本身并不是什么大不了的事情。

上面我们说了,每次 commit 都是一次版本。自然,每次 commit 记录,都会有一个版本号。比如上面那个图:

所以我们可以指定版本号回滚:

git reset --hard 版本号

但是这种我一般不常用。因为,我很讨厌去翻历史记录找版本号。大多数时候,我们都是要回滚到上一次版本。所以下面这个命令,更适合我:

git reset --hard "HEAD^"

这个^,就是上一次的意思。为了直观,我来模拟几次回滚:

我分别用两次commit,创建了 3.txt 和 4.txt。

然后看下版本记录:

现在我们回滚到上一个版本:

可以看到添加 4.txt 文件消失了:

总结一下:

  • git reset --hard "版本号",回退到指定版本。(后面的版本号并不需要双引号框起来),比如 git reset --hard 0f73fd71b54a0c84dea52dcafa64e599a8961c84
  • git reset --hard "HEAD^",回退到上一个版本。(这里要注意的是,这行命令在使用时,要记得后面的双引号,否则会报错)

04

PART

远程相关

上面的所有东东,都是一个人玩的。但是,你可以发现,add,commit,reset 等命令已经可以完美的来控制内容的版本了,这也是为什么说 git 是去中心化 CMS 的原因。其实不管是 github,还是 gitlab,这些地方只是为了找一个便于大家一起来进行版本控制的地儿。本身而言,它们并没有任何特殊。

我们要和远程协作,那我们自然得知道这个远程的地儿在哪。所以我们要把远程仓库先添加进来。我们一般使用 git remote add [名称] [地址] 来添加。我常用的两个名称是:origin 和 upstream,但其实,这名称你想叫做啥都可以。

代码语言:javascript
复制
git remote add [shortname] [url]

当我们添加了一个远程仓库之后,我们可以通过命令查看已经添加的远程仓库地址:

代码语言:javascript
复制
git remote -v

那我们如何和添加的远程仓库地址进行交互呢?这些内容我打算放在下一节和大家说!(本来想一篇文章就把 git 的东东讲完,但是发现还是不够的。所以我打算准备四篇内容。第一篇内容主要讲解 git 命令的基本使用,第二篇内容讲解 git 远程相关的使用,第三篇讲解 git 冲突的解决和常见的开发模式,包括 stash/merge,第四篇会讲解一些高端局,Git Plumbing。为大家分析一下 git 中的一些高级知识,比如底层数据结构

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小浩算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档