IT评测·应用市场-qidao123.com
标题:
Git进阶之旅:.gitignore 文件
[打印本页]
作者:
北冰洋以北
时间:
2025-3-10 03:24
标题:
Git进阶之旅:.gitignore 文件
先容:
在项目中,我们可能一起提交多个文件
git add -A:提交所有变革
git add -u:提交被修改(modified) 和被删除文件(deleted) 文件,不包罗新文件(new)
git add
.
:提交新文件(new) 和被修改文件(modified) ,不包罗被删除文件(deleted)
使用 Git 的过程中,有些文件无需纳入 Git 管理,也不希望它们出如今未跟踪列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具主动生成的文件等。
此时,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,Git 会根据这些模式规则来判断是否将文件添加到版本控制中
留意:在 windows 下可以创建文件名为 .gitignore,保存之后系统会主动重定名为 .gitignore
格式规范:
所有空行大概以注释 # 开头的都会被 Git 忽略
可以使用标准的 glob 模式匹配
匹配模式末了跟 / 分析要忽略的文件是 目次
要忽略指定模式外的文件或目次,可以在模式前加上 !进行取反
glob 模式:
*:匹配零个或多个恣意字符
[ ]:匹配恣意一个在方括号中的字符,如 [ab]:匹配 a 大概匹配 b
?:匹配一个恣意字符
[ n - m]:匹配所有在这两个字范围内的字符,如 [ 0 - 9 ]:表示匹配所有 0 到 9 的数字
匹配实例:
logs/:忽略当前路径下的 logs 目次,包罗 logs 下的子目次和文件
/logs.txt:忽略根目次下的 logs.txt 文件
*.class:忽略所有后缀为 .class 的文件
·······
案例:
在必要创建 .gitignore 文件的文件夹,右键选择 Git Bash 进入命令行,进入项目所在目次
输入 touch .gitignore ,文件夹就会生成一个 ".gitignore " 文件
然后用编辑器打开这个文件进行编辑即可
编写要忽略的文件:
.gitignore 内容:
创建两个文件:
查察状态发现 testclass.class 文件不在工作区
提交也不会进入暂存区:
定义全局的 .gitignore:
除了可以在项目中定义 .gitignore 文件外,还可以设置全局的 .gitignore 文件来管理所有 Git 项目的行为
这种方式在不同的项目开发者之间是不共享的,是属于项目之上 Git 应用级别的行为
可以在恣意路径下创建对应的 .gitignore 文件,然后使用以下命令设置:
git config --global core.excludesfile ~/.gitignore
.gitignore 规则不生效:
.gitignore 只能忽略那些原来没有被 track 的文件,假如某些文件已经被纳入了版本管理中,则修改 .gitignore 是无效的
一定要养成在项目开始就创建 .gitignore 文件的风俗
Java 开发通用模板:
######################
# 解决java产生文件
######################
*.class
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.ear
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
######################
# 解决maven产生的文件
######################
target/
**/target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
######################
# 解决各类编辑器自动产生的文件
######################
*.iml
## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:
# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries
# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml
# Gradle:
# .idea/gradle.xml
# .idea/libraries
# Mongo Explorer plugin:
# .idea/mongoSettings.xml
## File-based project format:
*.ipr
*.iws
## Plugin-specific files:
# IntelliJ
/out/
/target/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
复制代码
diff 命令:
git diff 文件名:
a 表示:前面的变量
b 表示:后面的变量
HEAD:commit 版本
Index:staged 版本
工作区 vs 缓存区:
git diff 文件名:
意义:查察文件在工作目次与暂存区的差异。假如还没进暂存区,则查察文件自身修改后的差异。
也可查察和另一分支的区别:git diff <branch> <filename>
暂存区 vs Git 堆栈:
git diff --cached 文件名:
意义:表示查察已经 add 到暂存区但是尚未 commit 的内容同最新一次 commit 的内容的差异
也可以指定版本库:git diff --cached 版本 文件名:
工作目次 vs Git堆栈:
git diff 版本 文件名:
意义:查察工作目次同 Git 堆栈指定 commit 的内容差异
版本 == HEAD 时:查察工作目次同迩来一次 commit 的内容差异
Git 堆栈 vs Git 堆栈:
查察 Git 堆栈恣意两次 commit 之间的差异:git diff 版本 版本
留意:
以上命令不指定文件名,则对全部文件操作
以上命令和 Git 堆栈对比的,均可指定 commit 的版本
HEAD:迩来一次 commit
HEAD^:上一次提交
HEAD~100:上100次提交
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4