git入门
Git架构
在任何当前工作的 Git 仓库中,每个文件都是这样的:
- 追踪的(tracked)-:这些是 Git 所知道的所有文件或目录。这些是新添加(用 git add 添加)和提交(用 git commit 提交)到主仓库的文件和目录。
- 未被追踪的(untracked) :这些是在工作目录中创建的,但还没有被暂存(或用 git add 命令添加)的任何新文件或目录。
- 被忽略的(ignored):这些是 Git 知道的要全部排除、忽略或在 Git 仓库中不需要注意的所有文件或目录。本质上,这是一种告诉 Git 哪些未被追踪的文件应该保持不被追踪并且永远不会被提交的方法。
查看Git本地配置
设置账号,密码
1 | git config --global user.name "Your Name" |
.gitignore
详解
所有被忽略的文件都会被保存在一个 .gitignore
文件中;
.gitignore
文件是一个纯文本文件,包含了项目中所有指定的文件和文件夹的列表,这些文件和文件夹是 Git 应该忽略和不追踪的;
一个 .gitignore
文件会被放在仓库的根目录下,也可以放在仓库的任何文件夹下,一个仓库可以有多个.gitignore
;
名字前面有点(.
)的文件默认是隐藏的;
为什么要忽略某些文件上传?
忽略某些文件上传是因为这些文件通常是本地环境特有的,或者是没有必要被版本控制的文件。以下是一些常见的原因:
- 本地配置文件:开发者的本地配置文件(如编辑器配置、环境变量配置等)通常因人而异,不应该上传到公共仓库。
- 编译或生成的文件:编译生成的文件(如
*.class
文件、dist/
目录等)可以通过源代码重新生成,上传它们既浪费空间,也会让仓库变得臃肿。 - 敏感信息:如API密钥、数据库密码等敏感信息不应该上传到公共仓库,以防泄露。
- 依赖库:如
node_modules/
、vendor/
等第三方依赖库不需要放在版本控制系统中,通常会通过包管理工具(如npm、composer等)自动下载和安装。 - 日志文件和临时文件:如
*.log
文件、*.tmp
文件等,是开发过程中的临时数据,不需要上传到仓库中。
什么文件应该被忽略?
根据项目类型和开发环境,以下是一些常见的需要忽略的文件和目录:
- 操作系统生成的文件
.DS_Store
(macOS)Thumbs.db
(Windows)
- 依赖库和包
node_modules/
(Node.js)vendor/
(PHP Composer)Pods/
(iOS Cocoapods)
- 编译输出文件
*.class
(Java)*.o
,*.so
(C/C++)dist/
,build/
(前端项目)
- 环境配置文件
.env
*.local
(环境特定的配置)
- IDE和编辑器生成的文件
.vscode/
,.idea/
*.suo
,*.user
(Visual Studio)
- 日志文件
*.log
- 其他临时文件
*.tmp
*.swp
(Vim)*.bak
(备份文件)
.gitignore
中格式是怎样的?
.gitignore
文件的格式简单且灵活。以下是一些常见的规则:
- 每行一个模式,表示要忽略的文件或目录。
- 可以使用通配符
*
来匹配任意字符。 #
用于注释说明,不会影响规则。- 以斜杠
/
结尾表示目录。 - 可以使用
!
前缀来否定一个忽略规则。 - 可以指定文件的完整路径或使用相对路径。
1 | # 忽略所有 .log 文件 |