Git 学习记录

2019-01-07  本文已影响0人  捡个七

如何工作

版本控制系统

版本控制系统有两类:集中式分布式。 分布式版本系统的代表是 Git,而集中式版本系统的代表是 SVN(Subversion)。

集中式和分布式的区别在于:集中式只有中心服务器有一份代码,而分布式则是每个人的电脑上都有一份代码。这样就会存在安全问题,当中心服务器挂掉的时候,使用集中式版本控制系统的团队就没法工作了。而且集中式版本管理系统依赖中心服务器,所以必须联网才能操作。而 Git 没网也能进行创建项目,修改代码等操作,有网后再 push 到远程的服务端即可。

Git 的基本工作流


如上图所示,是 Git 的基本工作流。一个 Git 项目可以看成以下 3 部分:

一个基本的 Git 工作流包括:编辑工作目录中的文件,将文件添加到临时区域以及将更改保存到 Git 仓库。

git init

初始化命令。该命令会初始化设置 Git 跟踪项目所做更改所需的所有工具。

git status

查询状态命令。可以在更改后使用该命令来查看当前的状态。

例如,我修改了 git_practice 本地仓库的 README.txt 中的内容。然后使用 git status 来查询当前的状态。如下所示,当前的状态是 modified

git diff

由于跟踪了文件,我们可以检查工作目录和暂存区域之间的差异。这时可以使用 git diff filename 这个命令。在将该文件 add 到暂存区域前使用。

git add

为了让 Git 开始跟踪 README.txt 文件,需要将文件添加到暂存区域。

可以使用 git add filename 这个命令来将文件添加到暂存区。


也可以一次性添加很多的文件:

git add scene-1.txt scene-2.txt scene-3.txt

git commit

git commit 是我们 Git 工作流程的最后一步。该命令用于永久存储来自仓库的暂存区域的更改。

但是,提交还需要一些代码,如选项 -m 后跟消息。如下例子所示:

git commit -m "First commit"  

提交消息的标准约定:

  • Must be in quotation marks 必须使用引号
  • Written in the present tense 使用现在时态
  • Should be brief (50 characters or less) when using -m 信息必须简短,少等于 50 个字符

git log

通常使用 Git 的时候,需要回顾一个项目的早期版本。提交按时间顺序存储在存储库中,所以可以通过 git log 命令查看。

在输出中,需要注意: 一串 40 个字符的代码,称为 SHA,用于唯一标识提交,以橙色文字显示。 之后还包含提交作者 ,提交的日期和时间以及提交消息。

git push

如果需要将本地代码更新至 GitHub 上,可以使用 git push 命令。

git pull

将远程仓库更新至本地仓库可以使用 git pull 命令。

关于 git pushgit pull ,更详细可以查看:阮一峰的博客 - Git远程操作详解

如何回溯

HEAD commit

在 Git 中,当前正在进行的提交称为 HEAD 提交。在许多情况下,最近的提交都是 HEAD 提交。查看 HEAD 提交可以使用git show HEAD 命令。

git checkout

当你不小心修改了源文件中的一些东西,这时候还没有执行 git add 操作,然后又不知道怎么执行 undo 的操作,可以使用这个命令:

git checkout HEAD filename

比如,我将自己 git_practice 这个 repo 的 README.txt 文件进行了一些修改。这时,可以先使用 git diff 来查看修改的内容:

然后使用上面那个新命令 git checkout HEAD README.txt ,最后回去查看 README.txt 文件,发现修改的内容被还原了:

git reset I

当你不小心修改了源文件中的一些东西,并且已经执行了 git add 操作,然后又不知道怎么执行 undo 的操作,可以使用这个命令:

git checkout HEAD filename

比如,我将 README.txtLet's play Git! 这条语句删除,并执行 add 操作。

这时,可以使用 git reset HEAD README.txt 命令。此命令将暂存区域中的文件重置为与 HEAD 提交相同。但它不会还原工作目录中的文件更改,只是将它们从暂存区域中删除。

git reset II

创建项目就像在森林里徒步旅行。有时你走错了路,发现自己迷路了。 就像在徒步旅行中回溯你的步骤一样,Git 也可以让你在转弯前回到部位。这时候可以使用 git reset commit_SHA 命令。

此命令通过使用先前提交的 SHA 的前 7 个字符来工作。例如,如果先前提交的 SHA 为 5d692065cf51a2f50ea8e7b19b5a7ae512f633ba,那么可以这样用:

git reset 5d69206

为了更好的理解这个 reset 的操作,可以看下面这幅图,其中每个圆圈代表一个提交。

遇到的一些问题

参考

[1]. codecademy - Learn Git
[2]. CS-Notes - git

上一篇 下一篇

猜你喜欢

热点阅读