git的三种状态(三个工作区域)
- 已修改(modified):表示在本地(工作区域)修改了文件,但是没有对文件做标记(只有做了标记的文件在执行提交命令时才会被提交),也没有提交到远程仓库中去。(也表示没有保存在数据库中)。
- 已暂存(staged):表示对一个已经修改的文件做了标记,包含在下次提交的快照中(也就是下次进行提交的时候就会提交的修改(文件))。
- 已提交(committed):表示数据已经安全的保存在本地数据库了。
上面三种状态对应git项目
的三个工作区域的概念:
- 工作目录:我们进行编辑代码的位置。
- 暂存区域:暂存区域是一个文件,记录了下次将提交的文件、修改,一般在 Git 仓库目录中。 有时候也被称作`‘索
引’’,不过一般说法还是叫暂存区域。 - Git仓库:Git 用来保存项目的原数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机或远程仓库(如github上)克隆仓库时,拷贝的就是这里的数据。我们提交的代码也将会到达这个位置。然后我们提交到远程仓库时,提交的就是这里面的文件。
git的基本工作流程
- 在工作目录修改文件。
- 将修改文件标记,也就是暂存文件,放入暂存区域。
- 提交更新,找到暂存区域需要提交的文件,然后将永久性的存储、更新在Git仓库目录。
如果修改了工作区域的文件,但是没有放入暂存区域,那么这个文件属于已修改状态
,如果文件修改并且已经放入暂存区域,但是没有提交至仓库,那么这个文件属于已暂存状态
,如果修改来的文件放入了暂存区域并且已经提交,那么属于已提交状态
。也就是大致完成了项目的更改。
git的安装
linux安装
sudo apt-get install git
或
sudo yum install git
更多选项可以参考Git官网中的步骤:https://git-scm.com/download/linux
windwos安装
windows安装有两种方法:
- 官方版本可以在 Git 官方网站下载。 打开 http://git-scm.com/download/win,下载会自动开始。 要注意这是一个名为 Git for Windows的项目(也叫做 msysGit),和 Git是分别独立的项目;更多信息请访问 http://msysgit.github.io/。
- 另一个简单的方法是安装 GitHub for Windows。 该安装程序包含
图形化和命令行
版本的 Git。 它也能支持Powershell,提供了稳定的凭证缓存和健全的 CRLF 设置。你可以在 GitHub for Windows 网站下载,网址为http://windows.github.com。也可以去我的百度网盘下载:https://pan.baidu.com/s/15Vc3eiePkVOpbSgASepoaw,提取码:kkbm 。
git的配置
至此,你已经在你的系统中安装好了Git,然后就应该定制我们的Git环境了,每台计算机只需要配置一次,Git升级时也会自动保留配置信息。我们也可以在任何时候通过命令来修改配置信息。
Git自带了一个git config <options>
命令来设置配置,这些变量存储在三个不同的位置。
linux下:(三个位置)
- /etc/gitconfig文件:包含系统上每一个用户及他们仓库的通用配置。 如果使用带有
--system
选项的git config
的命令 时,它会从此文件读写配置变量。 - ~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 可以传递
--global
选项让 Git读写此文件。 - 当前使用仓库的 Git 目录中的 config 文件(就是 .git/config文件):针对该仓库。可以传递
--local
选项读写此配置文件。
windows下:(两个位置)
- $HOME目录下(一般情况下是:
C:\User\$USER
)的.gitconfig
文件,使用--global
选项读写这个配置文件。 - 当前使用仓库的 Git 目录中的 config 文件(就是 .git/config文件):针对该仓库。可以传递
--local
选项读写此配置文件。
注意:
- 每一个级别的配置会覆盖上一个级别的配置。linux下,
./git/config
会覆盖~/.gitconfig
文件,~/.gitconfig
文件会覆盖/etc/gitconfig
文件。windows下,./git/config
会覆盖C:\User\$USER\.gitconfig
文件。 - 如没有没有
--system
,--global
,--local
中的任何一个参数,那么默认会按照上面第一点的规则来读取配置文件。
现在我们知道了配置文件的位置,但是我们现在还找不到--global
参数和--local
参数对应的配置文件。--global
参数对应的配置文件找不到是因为我们还没有进行--global
配置,所以这个文件就还没有生成。而--local
参数对应的文件只有在我们的仓库中才有。因为我们现在还没有仓库,所以也找不到这个文件。
下面我们来做一些--global
配置:
用户信息配置
第一个配置是设置你的用户名和邮件地址,这个很重要,因为每一个git的提交都会使用这些信息,并且他会写入到你的每一次提交中,不可更改。
打开命令行,输入一下两条命令:
git config --global user.name xxx # 全局设置你的用户名
git config --global user.email xxx@example.com # 全局设置你的邮箱
执行上面两条命令之后,我们就可以找到--global
参数对应的配置文件了,我们打开这个文件,发现里面的内容就是我们刚才配置的内容。
如果使用了 --global
选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息,因为这是全局配置。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --local
选项的命令来配置。即配置当前仓库的配置文件。
文本编辑器配置
当 Git 需要你输入信息时会调用它。 如果未配置,Git 会使用操作系统默认的文本编辑器。
- linux默认的文本编辑器通常是 Vim。 如果你想使用不同的文本编辑器,例如 Emacs,可以这样做:
git config --global core.editor emacs
- windows默认的文本编辑器也是"vim"(不清楚vim的可以百度一下vim的使用),更改编译器的方法为:
git config --global core.editor "\"你的编辑器文件路径\""
例如:我修改默认的编辑器为sublime text
git config --global core.editor "\"D:\Sublime Text 3\subl.exe\""
注意: 最外面一层的双引号在配置文件中会被去掉,然后\" 文本内容 \"
里面表示是一个字符串。
检查配置信息
使用一下命令就可以查看所有的配置信息了
git config --list
你可能会看到重复的变量名,因为 Git 会从不同的文件中读取同一个配置(例如:/etc/gitconfig 与~/.gitconfig)。 这种情况下,Git 会使用它找到的每一个变量的最后一个配置。
你可以通过输入 git config : 来检查 Git 的某一项配置
git config user.name
当然,我们也可以加上--global
等参数。
获取帮助
如果你对一个git命令不熟悉时,下面三个命令都可以很方便的找到git手册。
git help <command>
git <command> --help
man git-<command> # 只适用于linux系统
例如,想要获取config的命令手册
git help config
git config --help
man git-config # 只适用于linux系统
上面的命令会在浏览器中代开一个帮助页面,就详细的介绍了该命令的使用方法。打开的这个帮助页面并不需要联网。