# learnGit **Repository Path**: xuchaoxin1375/learnGit ## Basic Information - **Project Name**: learnGit - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-08 - **Last Updated**: 2024-04-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Learn Git ## abstract - 学习和实验git 管理仓库 - 这里创建了许多目录和子目录以及文件,来满足不同的实验需要 - 例如testIgnore目录可以用来试验`.gitignore`的工作特点,验证自己的想法是否正确 - linux系统下区分大小写,而windows下不区分大小写,有些Linux的试验在windows无法直接操作,可以借助Wsl或虚拟机操作 - 例如linux下可以同一个目录创建log,Log两个文件,但是windows会把他们认定为相同文件名(不区分大小写) ## gitignore - 对于一个仓库而言,只跟踪需要的文件或目录是重要的,规范的项目应该避免跟踪不重要的缓存和大文件,而尽量只跟踪源代码等文本文件 ### 跟踪目录下的少量子目录或文件 - 假设目录Dir有很多子目录和文件,但我们只需要跟踪其中的若干子目录和文件,可以使用反向匹配 - 我们在Dir目录下创建一个.gitignore文件,编辑仅限于该目录下的跟踪规则 - 例如 - ```bash #当前目录下忽略所有文件和子目录 /* !includeDir !includeFile #反向ignore模式下,注意把.gitignore本身强调加入跟踪 !.gitignore ``` ### 忽略个别目录或文件的跟踪 - 将这些目录或文件配置到`.gitignore`中即可 ### 仓库目录结构 - 由于gitignore的规则,部分文件或目录没有同步到云端仓库 - 以下是某个版本 #### 4/8/2024 - ``` [🔋 100%] MEM:48.07% [15.24/31.70] GB |tree /f Folder PATH listing for volume Windows Volume serial number is 0021-C080 C:. │ .gitignore │ 1 │ 2 │ 3 │ demo │ LICENSE │ readme.md │ tfx │ ├───dir1 │ dir1file1 │ dir1file2 │ dir1file3 │ ├───dir2 │ dir2file1 │ ├───dir3 │ dir3file1 │ ├───emptyDir ├───logs │ Log │ Logs │ └───testIgnore │ .gitignore │ tf1 │ tf2 │ ├───includeDir │ includeDemo │ ├───logs │ └───Logs │ logDemo │ └───notincludeDir tf1 ``` ## FAQ - 同一个仓库内的不同层级的目录中可以有各自的`.gitignore`文件,目录自己的`.gitignore`具有更高的优先级 - 这就是说,如果仓库根目录的`.gitignore`文件和子目录的`.gitignore`冲突,那么子目录的规则说了算