Preface
其实自己也用了好久好久的 Git 了,但是都是零零碎碎的,不成系统。这篇博客就是记录我学习使用 Git 的笔记吧,一是方便自己查阅,同时也希望可以帮到你。
无特殊声明,我都是在Linux环境下进行操作。中间参考了网上其他人的笔记或者教程,我会在后面注明。
这篇博客会保持更新。^_^
Notes
在进行 Git 操作之前,我们要切换到 Git 仓库目录下。这时候执行一个命令查看当前目录是不是 Git 仓库目录:
# 查看当前 git 仓库的一些状态,这个命令是最频繁使用的命令之一
$ git status
如果初次使用,一般我们一开始并不在 Git 仓库目录下。这时候终端会显示如下:
这时候,需要输入:
$ git init # 初始化 git 仓库
完成初始化后,显示如下:
这时候,我们新建一个文件:
$ touch helloWorld.md # 新建一个*.md文件
$ git status # 再次查看状态信息
说明一下,这个新建的
helloWorld.md
默认是在
master
分支(branch)。命令行中提示这个
helloWorld.md
是
Untracked files,说明这个
helloWorld.md
文件还未被跟踪,即还未提交到 git 仓库里,而且出现了一个提示:
use “git add” to track,即可以用
git add <files>
来操作你想提交的文件。
编辑上面创建的helloWorld.md
之后,用git add <files>
命令:
再使用
git status
命令,可以看见,状态改成了:
Changes to be committed # 意思是 helloWorld.md 文件等待被提交
这时候又有一个提示,即:
# 使用下面提示的命令移除缓存。
use "git rm --cache <file>..." to unstage
因为 git 分为三个部分:一部分是你自己的文件;另外一个是缓存区;最后一个是本地库。
当你修改了自己的文件后,你会git add
将修改保存到缓存区,然后再用git commit
推送修改到本地库中。
进行提交到本地库:
$ git commit -m "提交的描述信息"
# 如果我们这里不用-m参数的话
# git将调到一个文本编译器(通常是nano)来让你输入提交的描述信息
可能一天下来,你对工作树中的许多文档都进行了更新(文档添加、修改、删除),但是我忘记了它们的名字,此时若将所做的全部更新添加到索引中,比较轻省的做法就是:
$ git commit -a -m "提交的描述信息"
git commit
命令的-a
选项可只将所有被修改或者已删除的且已经被git管理的文档提交到仓库中。
如果只是修改或者删除了已被Git 管理的文档,是没必要使用git add
命令的。git add
命令除了能够判断出当前目录(包括其子目录)所有被修改或者已删除的文档,还能判断用户所添加的新文档,并将其信息追加到索引中。
对于已经修改提交过的注释,如果需要修改,可以借助git commit --amend
来进行
# git commit --amend
更多详细的git commit
内容,查阅git commit
文档,如果我用到了,会在更新。但是这里作为示例,我只用如下的:
$ git commit -m 'first commit'
# 再输入 git status
$ git status
这个时候再输入
git status
,会提示:
nothing to commit, working directory clean,没什么要
commit
了的,工作目录是
clean
的。
这时候,输入:
$ git log # 查看所有产生的 commit 记录
会有如下显示:
git log
命令可以查看所有产生的 commit 记录,以及 commit 人的账号以及时间信息,其其提交时候的附带信息(
git commit -m 'first commit'
)叫
first commit 。
前面已经说过了,git 分为三个部分,第一个部分是本地文件,第二个是缓存区,第三个是本地库。我们通过git add
将本地文件add到缓存区,再通过git commit
将缓存区文件commit到本地库。因此stormzhang的AndroidDeveloper专栏有这样的解释:
看到这里估计很多人会有疑问,我想要提交直接进行 commit 不就行了么,为什么先要再add一次呢?首先
git add
是先把改动添加到一个「暂存区」,你可以理解成是一个缓存区域,临时保存你的改动,而git commit
才是最后真正的提交。这样做的好处就是防止误提交,当然也有办法把这两步合并成一步,不过后面再介绍,建议新手先按部就班的一步步来。
下面就要写 Git 中的很重要的branch(分支)的概念了。
嗯,这次先写到这里。