gitignore如何运作?

时间:2017-07-18 06:14:36

标签: git

您好我是git的新手,我无法完全理解.gitignore。

所以,让我们说我目前正在制作一个主文件夹,里面有一个我真的不需要跟踪的报告文件夹。

Master Folder
 |
 +-- file 1
 |    
 +-- dir 2
 |  |  
 |  \-- file 2.1
 |    
 +-- dir 3
 |  |  
 |  +-- file 3.1
 |  \-- file 3.2
 |    
 +-- Reports
 |  |  
 |  +-- file 4.1
 |  \-- file 4.2

现在,我想修改文件夹,以便在我的存储库中克隆主文件夹。报告文件夹是否也被克隆了?

在我编辑时,有人在报告文件夹中添加或更改了文件。

完成编辑后,我需要将主文件夹更新为我已更新的内容。如果我git push我的更改,它会影响主文件夹中的Reports文件夹吗?

3 个答案:

答案 0 :(得分:3)

在将报告提交到master之前,请确保在项目的根目录中创建新的.gitignore文件。完成此操作后,将文件夹或文件的路径包含到gitignore文件中。确保每行指定一个路径。

在您的情况下,如果您要忽略Reports文件夹中的所有文件,请将以下内容添加到.gitignore文件中。

/Reports

如果要排除特定文件,可以执行类似

的操作
/Reports/*.docx

假设报告是混合文件扩展名,但您想忽略文件夹中的所有word文件报告。

关于克隆,如果有人试图克隆项目,他就不会获得任何报告文件,因为它们没有在第一时间提交。此外,在报告文件夹中进行任何更改都不会被git跟踪。

答案 1 :(得分:0)

您必须在名为.gitignore的主文件夹中创建一个文件,并在.gitignore文件中写下以下行:

Reports/

现在如果您推送主文件夹,那么git将不会跟踪您的Reports文件夹。

答案 2 :(得分:0)

在文件夹的根目录中创建一个新的.gitignore文件,并添加要从中排除的文件扩展名或目录路径。 例如:

.idea
.DS_Store
*.iml
src/main/resources/config.config
src/main/resources/conf/local
/target
screenshots/
/Reports

同样,您可以添加要排除的文件名或扩展名。 gitignore文件中的每一行都指定一个模式。在决定是否忽略路径时,Git通常会检查来自多个源的gitignore模式,具有以下优先顺序,从最高到最低(在一个优先级内,最后一个匹配模式决定结果):

从命令行读取的模式支持那些支持它们的命令。

  

从与.gitignore文件相同的目录中读取的模式   路径,或在任何父目录中,具有更高级别的模式   文件(直到工作树的顶层)被这些文件覆盖   在较低级别的文件中,直到包含该文件的目录。这些   模式相对于.gitignore文件的位置匹配。一个   项目通常在其存储库中包含此类.gitignore文件,   包含作为项目构建的一部分生成的文件的模式。

从$ GIT_DIR / info / exclude。

中读取的模式

从配置变量core.excludesFile。

指定的文件中读取的模式