虽然大家肯定都知道这两个概念,但是还是要先说两句废话的……
Git -> 分布式版本控制系统,用来记录一个或者多个文件的变化。
GitHub -> 代码托管中心,用来提供Git服务的地方。
安装Git
这个没什么好说的,一路next就可以了。
安装过程中有两个地方要顺带提一下
1)推荐使用什么编辑器作为git默认的文本编辑器
Linux下默认使用的就是vim编辑器,当然你也可以选择Notepad++等等编辑器。这里我们暂时就保持默认设置。
保持默认设置,我们用git commit的时候,效果就是这样的
如果不熟悉vim这个文本编辑器,可以使用
git config --global core.editor notepad
这个命令可以把编辑器更改为记事本,等我们提交的时候就变成酱紫:
2)用什么方式连接本地库和远程库
这里我们也保持默认设置,使用更加通用的OpenSSL连接方式
OpenSSL是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有SSL协议实现、大量对称/非对称/摘要算法
更改环境变量
装完git过后,我们还需要设置一下你的用户名和邮箱
git config --global user.name "youname"
git config --global user.email "aa@qq.com"
这两项用来标志提交者身份,是必须要设置的,不然等你提交的时候,git就会对你发出灵魂的拷问,你是谁?到底是谁提交了代码?
git config -l
查看我们的环境变量,环境变量就已经多了这三项了……
Git代码管理结构
- 工作区(Working Directory)
工作目录,你直接编辑代码的地方
通过git add可以把工作区的代码提交到暂存区
- 暂存区(Stage 或 Index)
代码暂时存放的区域,是工作区和版本库之间的桥梁,一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
通过git commit可以把暂存区的代码提交到本地库中
- 版本库(commit History)
存放已经提交的代码
我们执行push命令的时候,就是把这个区的代码 push 到远程仓库了。
我网上找了个图,我觉得这个图非常好,总结的清晰易懂
Git文件的生命周期
Git文件大概分成四种类型
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制.。通过git add 状态变为Staged
Staged: 暂存状态.执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态.
执行git reset HEAD filename取消暂存, 文件状态回到上一个状态(Modified/Untracked)
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作。这个类型的文件通过git add可进入暂存staged, 使用git checkout 则丢弃所有修改的地方(git checkout即从暂存区中取出文件, 覆盖当前修改), 回到unmodify状态
Unmodify: 文件已经入库, 未修改。这种类型的文件如果它被修改, 而变为Modified,如果使用git rm移出版本库, 则成为Untracked