抛开那些你可能看过的各种git原理和流程图不谈,本着尽快上手使用git开始工作的原则,这一节,我们创建自己的第一个repository,并了解最简单的git工作流。

使用git init创建仓库

首先,我们新建一个git-learning目录,表示项目的根目录。为了把这个目录变成一个git仓库,我们只要执行git init就好了。完成后,git-learning中就会多出来一个.git目录:

git跟踪的所有信息,都包含在.git目录里。不过,现在我们没必要去关心这些细节,只要知道它的作用就好了。

使用git add创建“快照”

其次,在git-learning中创建一个文件,例如hello.txt,来模拟在项目中添加了内容。但这时hello.txt并没有在我们的代码仓库中,仅仅是在git-learning目录而已。我们可以执行git status

从图中可以看到,hello.txt被列在了Untracked files中,也就是说,git还没有登记这个文件。为了把hello.txt加入仓库,必须执行git add hello.txt。我们可以把这个命令理解为是给hello.txt做了一个快照。为什么这么说呢?

为了理解这个问题,这时,我们可以编辑一下hello.txt,随意添加点内容。完成后,如果我们再执行git status,就会看到下面的结果:

看到了吧,此时,关于hello.txtgit提供了两个信息:

  • 上面绿色的,就表示git已经对这个新文件做了快照,我们可以把这个快照提交到git仓库了;
  • 下面红色的,是我们刚才的修改,git还没有对此进行“登记”,因此提交的内容,也不会包含这个修改;

使用git commit提交“快照”

为了把“快照”提交到仓库,我们可以执行git commit,这时git就会打开之前我们用core.editor设置的编辑器,要求我们对这次提交添加一些注释:

我们可以写Add hello.txt,然后,保存退出,Hello.txt的第一个快照,就被添加到仓库了。

这时,再执行git status,可以看到hello.txt只剩下一个还没有登记的变化了。我们执行下面的命令把它也添加到仓库:

git add .
git commit -m "Add welcome content."

这里,有两点要说明一下:

  • 首先,在执行git add的时候,我们使用了.表示为所有更新过的文件创建“快照”。当我们要添加多个文件的时候,用起来就会很方便。但是在使用.之前,我们最好执行git status确认一下,避免暂时还不需要提交的文件创建快照
  • 其次,在提交的时候,我们可以使用-m直接指定注释,这样,git就不会再打开编辑器让我们编写了;

完成后,再执行git statusgit就会提示我们当前所有文件都已经更新了。

使用git log查看提交记录

这时,如果我们执行git log,就会看到之前的两次提交结果:

这里,每一次提交,git都会生成一个对应的哈希值。并且,HEAD -> master表示,我们当前在master分支上,HEAD表示这个分支的当前位置。如果你还不太理解分支也没关系,在后面的内容中,我们会专门提到它。

What's next?

以上,就是使用git进行版本管理的一个最基础的工作流。下一节,我们来看另外一个常见的场景:当提交完成之后,发现提交的内容里有个typo,该怎么办呢?

所有订阅均支持 12 期免息分期

¥ 59

按月订阅

一个月,观看并下载所有视频内容。初来泊学,这可能是个最好的开始。

开始订阅

¥ 512

按年订阅

一年的时间,让我们一起疯狂地狩猎知识吧。比按月订阅优惠 28%

开始订阅

¥ 1280

泊学终身会员

永久观看和下载所有泊学网站视频,并赠送 100 元商店优惠券。

我要加入
如需帮助,欢迎通过以下方式联系我们