首先看这张图片,这是官网扒下来的,黄色代表操作,红色是暂存区,绿色是本地仓库,蓝色是远程仓库,左侧从下到上是保存最新版本到对应的地点,右侧从上往下是从远程仓库提取最新版本开始操作。
分区:
本地仓库
WorkSpace 工作区:存放代码的地方。
Index/Stage 暂存区:临时存放改动,只是一个文件,保存即将提交到文件列表的消息。
Repository 仓库区:安全存放数据的位置,有你所有提交过的版本。
远程仓库
Remote 仓库:托管代码的服务器。
工作流程:
三个状态:已修改、已暂存、已提交
1. 在工作目录添加或修改文件;
2. 将需要进行版本管理的文件放入暂存区;
3. 将暂存区的文件提交到Git仓库;
项目创建及克隆:
在本地创建仓库:git init
克隆/远程拷贝镜像:git clone
Git基本操作命令
查看所有文件跟踪状态:git status
查看指定文件跟踪状态:git status xxx
添加所有文件到暂存区:git add .
提交暂存区的内容到本地仓库:git commit -m "备注更改信息"
-m:提交信息
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件、临时文件、设计文件等,
在项目主目录下建立“ .gitignore ”文件,此文件有如下规则:
1.忽略文件中的空行;
2.以#开始的行将会被忽略;
3.可以使用Linux通配符;
例:
*代表任意多个字符;
?代表一个字符;
[ ]代表可选字符范围;
{ }代表可选的字符串;
等等。
4.如果名称的最前面有一个感叹号,表示例外规则,不会被忽略;
5.如果名称的最前面是一个 / ,表示要忽略的文件在此目录下,而子目录中的文件不忽略;
6.如果名称的最后面是一个 / ,表示要忽略的是此目录下该名称的子目录,而非文件( 默认文件或目录都忽略)。
例:
注释: #
忽略所有.txt结尾的文件: *.txt
但lib.txt除外:!lib.txt
仅忽略项目根目录下的TODO(实体类)文件,不包括其他目录temp(临时文件夹):/temp
忽略build/目录下的所有文件:build/
忽略doc/notes.txt 但不包括doc/server/arch.txt:doc/*.txt