如果有人认为主题问题是错误的,您可以编辑。
我们在这里有相当大的包,其中只有几个目录被修改。我的意思是有很多目录路径,其中包含更多文件,那么我们实际上需要使用 git 进行跟踪。所以api/dir/dir2/contrib/
里面有10个文件,只需要跟踪2个。我们有很多这样的位置,为此使用 gitignore 真的很麻烦。第一个选择是忽略所有文件,git add
只有那些我需要使用 -f 标志提交的文件,每次都这样做真的很烦人。有没有更好的解决方案来组织这样的 repo?
如果有人认为主题问题是错误的,您可以编辑。
我们在这里有相当大的包,其中只有几个目录被修改。我的意思是有很多目录路径,其中包含更多文件,那么我们实际上需要使用 git 进行跟踪。所以api/dir/dir2/contrib/
里面有10个文件,只需要跟踪2个。我们有很多这样的位置,为此使用 gitignore 真的很麻烦。第一个选择是忽略所有文件,git add
只有那些我需要使用 -f 标志提交的文件,每次都这样做真的很烦人。有没有更好的解决方案来组织这样的 repo?
您可以忽略所有内容并将不想忽略的文件添加到.gitignore
文件中,并以感叹号为前缀。
例子:
*
!.gitignore
!foo.txt
这将忽略除文件.gitignore
和foo.txt
根文件夹中的所有内容。
不幸的是,当涉及到目录中的文件时,它并不那么容易。
假设我有以下结构:
/.gitignore
/foo.txt
/sub/foo.txt
/sub/some_other.txt
/sub2/sub21/bar.txt
/sub2/sub21/some_other2.txt
我只想包括bar.txt
并foo.txt
忽略其他所有内容。
*
忽略所有内容,因此它也忽略子文件夹。简单地添加!sub/foo.txt
不足以使 git 取消忽略该文件。你真正需要做的是:
sub
:!sub/
sub/foo.txt
:!sub/foo.txt
如果您的目录层次结构很深,这将变得非常麻烦。
要取消忽略bar.txt
,需要以下内容:
!sub2/
!sub2/sub21/
!sub2/sub21/bar.txt