一、查看文件状态
1. 查看指定文件状态
git status [filename]
2. 查看全部文件状态
git status
二、文件的4种状态(从工作区到本地仓库之间文件的几种状态)
1. Untracked:未跟踪
- 此文件在文件夹中,但没有加入本地git仓库中,不参与版本控制,通过
git add
改变状态为stage
2. Unmodify:文件已入本地仓库
- 这个文件有两种去处
- 未修改,即本地仓库中的文件快照内容与工作区中完全一致
- 如果被修改(工作区修改导致与本地仓库不一致),则变为Modified,如果使用
git rm
移出本地仓库,则成为Untracked文件
3. Modified:文件已修改
- 仅仅是修改,并没有进行其他操作,这种文件也有两种去处
- 通过
git add
进入暂存状态 - 使用
git checkout
则丢弃修改,返回到Unmodify状态,git checkout
即从本地仓库中取出文件,覆盖当前修改
4. staged:暂存状态
- 执行
git commit
则将修改同步到本地仓库中,此时本地仓库中的文件和工作区文件变为一致,文件为Unmodify状态,执行git reset HEAD filename
取消暂存,文件状态变为Modified
三、忽略文件(项目编译后,在生成的target文件中)
忽略文件可以帮助用户在将项目上传到版本控制中时,忽略一些临时文件
.gitignore’文件,有如下规则:
- 忽略文件中的空行或以井号( # )开始的行将会被忽略。
- 可以使用Linux通配符。例如:星号(* )代表任意多个字符,问号( ? )代表一个字符,方括号( [abc] )代表可选字符范围,大括号( {string1,string2…} )代表可选的字符串等。
- 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 如果名称的最前面是一个路径分隔符 (/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
*. txt
!1ib. txt
/temp
bui1d/
doc/*. txt
参考大佬的.gitignore文件
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar
.settings/
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
bin/
.idea
*.iws
*.iml
*.ipr
rebel.xml
nbproject/private/
build/
nbbuild/
nbdist/
.nb-gradle/
target/
*.war
*.ear
*.zip
*.tar
*.tar.gz
.vscode
/logs/
*.log
*.cache
*.diff
*.patch
*.tmp
*.java~
*.properties~
*.xml~
.DS_Store
Thumbs.db
Servers
.metadata