文章目录
8.1 文件四种状态
● 版本控制就是对文件的版本控制,在 Git 管理中,文件被统一管理,有四个状态
- Untracked :未跟踪,此文件在文件夹中,但并没有加入到 git 库,不参与版本控制,通过
git add
状态变为 Staged - Unmodify :文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两种处理方式,如果它被修改,变为 Modified ;如果使用
git rm
移出版本库,则成为 Untracked - Modified :文件已修改,仅仅是修改,并没有进行其他的操作。这种文件有两个去处,通过
git add
可进入暂存 staged 状态,使用git checkout
则丢弃修改过,返回到 unmodify 状态,这个git checkout
即从库中取出文件,覆盖当前修改 - Staged :暂存状态,执行
git commit
则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为 Unmodify 状态;执行git reset HEAD filename
取消暂存,文件状态为 Modified
8.2 文件操作指令
8.2.1 查看指定文件状态:git status [filename]
- 先在 D:\xjsgit2\xjsGitHub.github.io ,创建一个测试文件 ABC.txt
8.2.2 查看所有文件状态:git status
8.2.3 添加所有文件到暂存区:git add .
8.2.4 提交暂存区中的内容到本地仓库:git commit -m "消息内容"
8.3 忽略文件
8.3.1 实际需求:我们不想把某些文件纳入版本控制中, 如何处理?
8.3.2 忽略文件处理方式
- 不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等
- 在主目录下建立 “.gitignore” 文件 (默认就有),此文件有如下规则:
- 忽略文件中的空行或以井号 (
#
) 开始的行 - 支持 Linux 通配符。例如:星号(
*
)代表任意多个字符,问号(?
)代表一个字符,方括号([abc]
)代表可选字符范围,大括号({string1,string2,...}
)代表可选的字符串等 - 如果名称的最前面有一个感叹号(
!
),表示例外规则,将不被忽略 - 如果名称的最前面是一个路径分隔符(
/
),表示忽略 .gitignore 文件所在的目录,不包括其任何子目录 中的 dir 目录 - 如果名称的最后面是一个路径分隔符(
/
),忽略 .gitignore 文件所在的目录和所有子目录的 dir 目录
#常用规则, 掌握一些, 其它查看文档
*.java #忽略所有 .java 结尾的文件
!xjs.java #xjs.java 除外
- 更加详细的规则可以参考文档
8.3.3 看一个实例
- 文件 D:/xjsgit2/xjsGitHub.github.io/.gitignore