抛开那些你可能看过的各种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.txt,git
提供了两个信息:
- 上面绿色的,就表示
git
已经对这个新文件做了快照,我们可以把这个快照提交到git
仓库了; - 下面红色的,是我们刚才的修改,
git
还没有对此进行“登记”,因此提交的内容,也不会包含这个修改;
使用git commit提交“快照”
为了把“快照”提交到仓库,我们可以执行git commit
,这时git
就会打开之前我们用core.editor
设置的编辑器,要求我们对这次提交添加一些注释:
我们可以写Add hello.txt,然后,保存退出,Hello.txt的第一个快照,就被添加到仓库了。
image这时,再执行git status
,可以看到hello.txt只剩下一个还没有登记的变化了。我们执行下面的命令把它也添加到仓库:
git add .
git commit -m "Add welcome content."
这里,有两点要说明一下:
- 首先,在执行
git add
的时候,我们使用了.
表示为所有更新过的文件创建“快照”。当我们要添加多个文件的时候,用起来就会很方便。但是在使用.
之前,我们最好执行git status
确认一下,避免暂时还不需要提交的文件创建快照; - 其次,在提交的时候,我们可以使用
-m
直接指定注释,这样,git
就不会再打开编辑器让我们编写了;
完成后,再执行git status
,git
就会提示我们当前所有文件都已经更新了。
使用git log查看提交记录
这时,如果我们执行git log
,就会看到之前的两次提交结果:
这里,每一次提交,git
都会生成一个对应的哈希值。并且,HEAD -> master
表示,我们当前在master分支上,HEAD
表示这个分支的当前位置。如果你还不太理解分支也没关系,在后面的内容中,我们会专门提到它。
网友评论