我有一个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
。
答案 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
的底部