我正在将 VCS 迁移到 git。这是通过从旧的 VCS (TFSVC) 签出并通过脚本签入 git 存储库来完成的。
基本上在这样一个循环中:
for x in $(seq 1 100)
do
tf get $x # get version x
git add . # add everything to index
git commit # commit
done
旧的 VCS 包含一个.gitignore
,作为迁移过程的一部分,我不希望应用这些模式。使用git add . --force
. 问题是还有一些我可能想忽略的东西。
我希望.git/info/exclude
用于此目的,但git-add --force
显然除了.gitignore
规则之外还忽略了这一点。似乎也一样core.excludesFile
。
.gitignore
.git/info/exclude
或其他一些排除文件或模式一个选项当然是git restore --staged $EXCLUDE_PATH_SPEC
在将所有内容添加到索引之后,但我想知道是否没有更好的解决方案。
我似乎记得看到一个用于指定忽略/排除 glob 的选项,但我似乎无法找到它。
也许有一种方法可以使用管道命令来实现这一点,例如git update-index
?
我已经补充说明,我不想依赖修改工作树的解决方案(即:移动/修改.gitignore
),因为它已被多次建议。主要是因为这些原因:
.gitignore
文件如果标准的便利不是您想要的,请使用核心命令创建自己的便利。git ls-files
允许您根据自己的喜好构建排除项,并git update-index
接受您想要的任何内容。
git ls-files -ocX /path/to/my/excludes \
| git update-index --add --remove --stdin
git ls-files
-o --others
在输出中显示其他(即未跟踪)文件-c --cached
在输出中显示缓存文件-X --exclude-from
从 中读取排除模式,每行 1 个。git update-index
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句