Git是用C语言开发的分布版本控制系统。版本控制系统可以保留一个文件集合的历史记录,并能回滚到另外一个状态(历史记录状态)。对 于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改 (modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂 存表示把已修改的文件放在下次提交时要保存的清单中。
一般情况下,Git的命令都是git [command] [option] [argument]格式。其中 command指的是某种操作命令,比如config,mv,rm,pull,push等等。而option和 argument指的是操作命令后面的具体参数,比如:
git config --golobal user.name="hic"其中,config指的就是配置命令,接着后面跟上配置的具体参数,其中–global指的是对全局配置生效,后面的user.name就是对用户名进行设置。
配置文件是从事所有所有工作的基础,在这里配置文件决定了工作时候的用户,邮箱,以及默认编辑器等等常用的配置参数,下面就先说一说配置文件。
在Git中,配置文件有三大类,分别放在不同的位置。
注意:每一级别的配置,都会覆盖上层的相同配置。
用户名设置
电子邮件
设置文本编辑器,默认为vi,这里设置为emacs
查看配置信息
如果要查看某个特定的环境变量,只要把它的名字放到最后即可
选择一个工作目录,开始工作,同时我们添加一些文件和目录。
执行这条命令之后,在test目录下会出现一个隐藏的.git目录,该目录会保存工程中所有的信息。
在Git中,文件只有三种状态,已修改,已暂存和已提交。这三个文件分别放在工作目录,暂存区域和git目录。当一 个文件修改完毕之后,它仍然在工作目录;只有当它被add之后,才会进入暂存区域,文件状态变为已暂存;最后,当文件被 commit之后,它就会进去git目录区域。这三个文件状态非常重要,请慢慢理解。
接着上面的初始化。当初始化之后,在test目录下,有README,file和.git/三个文件或目录,其中.git/是在初始化之后生成的。
此时在test中的文件都是存在于工作目录区域,尚未添加到暂存区。使用下面的命令可以查看到如果此时我要修改README文件。
你会发现,README和file文件均是Untracked。接着使用add命令将它们添加到暂存区。
此时的文件均已放在暂存区,其中git add . 就是将本目录下所有文件暂存。
暂存区其实更像是一个缓冲区域,只有将文件commit到git目 录区域才表示真正的提交。其中commit命令提交的时候,需要对提交内容进行说明,有两种方法,一种是使用 -m "Message" 指令,这适用与比较短小的信息;另外一种就是使用编辑器进行编辑,前面设定的编辑器就是为它服务的,默认编辑器是vi,不过我这里设定的是emacs。
在这里,我使用-m参数。其中-a选项,表示提交所有在暂存区的文件,当然你也可以使用 git commit file README这样的方式来提交。
这是再查看文件状态,就会发现没有可以提交的文件了。
如果事先没有作出任何的更改,一个项目是没有分支的,它只有一条主线,例如:
这里master就是主干,就是整个开发的流程,它前面的星号表示当前开发的流程。
如果在开发过程中,我们突然需要添加某个功能,或者打上某个补丁,可以在 master主干上添加一个分支,比如host,例如:
这个时候,你可以清楚的看到星号已经在host头上,表示当前已经切换到host上,你可以开发你的补丁,而不会打乱主干的开发。
如果你在开发过程中想要回到主干,可以使用checkout命令进行切换。
此时,你又回到主干了。
当某个分支的开发结束后,你会需要将其合并到主干上,从而集中精力进行主干的开发。合并前只需要将指针切换到主干,即master,然后使用merge命令。
此时的host分支已经失去作用了,可以将删除。