Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
忽略带有git的文件,而不在.gitignore中定义它_Git_Jenkins - Fatal编程技术网

忽略带有git的文件,而不在.gitignore中定义它

忽略带有git的文件,而不在.gitignore中定义它,git,jenkins,Git,Jenkins,我有一个jenkins管道,它检查一个git项目,该项目有它的.gitignore文件。 这是我的工作区的内容: file1.txt src/ .gitignore file1.txt src/ .gitignore script.sh 现在,jenkins管道将在工作区中加载一个脚本: file1.txt src/ .gitignore file1.txt src/ .gitignore script.sh 这种行为在很多项目中都会发生。我们无法将脚本.sh放入每个项目的.gitign

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

file1.txt
src/
.gitignore
file1.txt
src/
.gitignore
script.sh
现在,jenkins管道将在工作区中加载一个脚本:

file1.txt
src/
.gitignore
file1.txt
src/
.gitignore
script.sh
这种行为在很多项目中都会发生。我们无法将
脚本.sh
放入每个项目的
.gitignore
中。(我知道这是可能的,但将其视为临时解决方案):

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


我们的脚本将执行
git提交
,我们希望避免脚本也出现在repo中,而不编辑
。gitignore

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

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

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

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

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

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

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

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

git config core.sparsecheckout true
echo "!script.sh" > .git/info/sparse-checkout
echo "/*" >> .git/info/sparse-checkout`
第二行将script.sh从git活动中排除,而“/*”包含其余文件

请注意,单个“>”表示覆盖文件内容,这可能不是您想要的。如果要追加,请使用double


稀疏签出的文档位于

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

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

git config core.sparsecheckout true
echo "!script.sh" > .git/info/sparse-checkout
echo "/*" >> .git/info/sparse-checkout`
第二行将script.sh从git活动中排除,而“/*”包含其余文件

请注意,单个“>”表示覆盖文件内容,这可能不是您想要的。如果要追加,请使用double


稀疏签出的文档位于

的底部。我在本地签出后看到该文件,但签出后在Jenkins中看不到该文件?您需要在Jenkins Build中运行该脚本。当我创建自己的.git/info路径时,该脚本可以正常工作。你知道我为什么要自己在詹金斯的工作区里创建这个吗?默认情况下,当我在本地克隆它时,它就在那里。提交中不包括工作区.git文件夹中的任何内容,这就是为什么在进行克隆后必须让Jenkins创建该文件的原因。我在本地签出后看到该文件,但签出后Jenkins中看不到该文件?您需要作为Jenkins Building的一部分运行该脚本。当我创建自己的.git/info路径时,该脚本会起作用。你知道我为什么要自己在詹金斯的工作区里创建这个吗?默认情况下,当我在本地克隆它时,它就在那里。工作区中.git文件夹中的任何内容都不包括在提交中,这就是为什么在克隆后必须让Jenkins创建它的原因。