使用git忽略文件而不在.gitignore中

时间:2017-11-28 11:09:25

标签: git jenkins

我有一个jenkins管道,它检查出一个带有它的.gitignore文件的git项目。 这是我工作区的内容:

file1.txt
src/
.gitignore

现在jenkins管道将在工作区中加载脚本:

file1.txt
src/
.gitignore
script.sh

很多项目都会出现这种情况。我们无法将script.sh放在每个项目的.gitignore中。 (我知道这是可能的,但将此视为临时解决方案):

是否有一些git命令可以在我们的管道中执行,它将告诉git: 忽略script.sh(+忽略.gitignore中的其他内容。)

我们的脚本会执行git commits,我们也希望避免在回购中使用脚本,而无需编辑.gitignore

2 个答案:

答案 0 :(得分:0)

您可以在执行提交之前运行以下脚本;

echo script.sh >> .git/info/exclude

.git / info / exclude 的行为与.gitignore类似,但它只会影响本地存储库 - 无法提交对此文件的更改。

答案 1 :(得分:0)

您可能会进行稀疏结账。它用于本地定义您希望在此工作环境中包含的内容,这意味着它永远不会影响远程。

在文件存在后,您必须从shell脚本(或类似代码)执行以下操作:

git config core.sparsecheckout true
echo "!script.sh" > .git/info/sparse-checkout
echo "/*" >> .git/info/sparse-checkout`

第二行从git活动中排除script.sh,而“/ *”包含其余文件。

请注意单个“>”意味着覆盖文件内容,这可能不是您想要的。如果你想追加,请使用双倍。

稀疏结帐的文档位于this page

的底部