Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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
.gitignore以保留一个文件_Git_Jenkins_Gitignore_Git Add - Fatal编程技术网

.gitignore以保留一个文件

.gitignore以保留一个文件,git,jenkins,gitignore,git-add,Git,Jenkins,Gitignore,Git Add,我正在尝试创建一个cronjob来备份git中的所有Jenkins配置。在我的存储库中唯一需要跟踪的是每个Jenkins项目中的config.xml。文件系统的结构类似于。/jenkins/jobs/[PROJECTNAME]/config.xml。.git位于作业中 我不想显式忽略所有其他文件夹/文件,但只允许该位置的config.xml。我提出了以下工作解决方案: * !.gitignore !config.xml !*/ */workspace */modules /config-hi

我正在尝试创建一个cronjob来备份git中的所有Jenkins配置。在我的存储库中唯一需要跟踪的是每个Jenkins项目中的
config.xml
。文件系统的结构类似于
。/jenkins/jobs/[PROJECTNAME]/config.xml
.git
位于作业中

我不想显式忽略所有其他文件夹/文件,但只允许该位置的
config.xml
。我提出了以下工作解决方案:

*

!.gitignore
!config.xml
!*/

*/workspace
*/modules
/config-history
*/config-history
*/*/config-history
*/*/*/config-history
*/*/*/*/config-history
*/*/*/*/*/config-history
*/*/*/*/*/*/config-history
*/*/*/*/*/*/*/config-history 
不幸的是,有很多项目,
git add.
需要一段时间。忽略
工作区
,直接包含大多数文件,没有增加任何好处

顺便说一句,直观和快捷的方式根本不起作用:

*
!.gitignore
!*/config.xml

优化my.gitignore或my git add而不列出这两种情况下的所有文件,有什么想法吗?

既然这只是一项自动化任务,为什么不直接添加所需的文件呢?替换

git add .

git不必遍历整个项目树

如果要显示回购的状态,而不加载未跟踪的文件,请使用

git status -uno
编辑:当然,您必须在目录中包含要添加的
config.xml
;如果要在当前目录的子目录中添加所有
config.xml
s,请使用

git add */config.xml

既然这只是一个自动化的任务,为什么不直接添加所需的文件呢?替换

git add .

git不必遍历整个项目树

如果要显示回购的状态,而不加载未跟踪的文件,请使用

git status -uno
编辑:当然,您必须在目录中包含要添加的
config.xml
;如果要在当前目录的子目录中添加所有
config.xml
s,请使用

git add */config.xml

既然这只是一个自动化的任务,为什么不直接添加所需的文件呢?替换

git add .

git不必遍历整个项目树

如果要显示回购的状态,而不加载未跟踪的文件,请使用

git status -uno
编辑:当然,您必须在目录中包含要添加的
config.xml
;如果要在当前目录的子目录中添加所有
config.xml
s,请使用

git add */config.xml

既然这只是一个自动化的任务,为什么不直接添加所需的文件呢?替换

git add .

git不必遍历整个项目树

如果要显示回购的状态,而不加载未跟踪的文件,请使用

git status -uno
编辑:当然,您必须在目录中包含要添加的
config.xml
;如果要在当前目录的子目录中添加所有
config.xml
s,请使用

git add */config.xml

那么,您至少可以使用双星号来缩短.gitignore:

# other stuff here
**/config-history

它将匹配任何路径中的
配置历史记录。

您至少可以使用双星号缩短.gitignore:

# other stuff here
**/config-history

它将匹配任何路径中的
配置历史记录。

您至少可以使用双星号缩短.gitignore:

# other stuff here
**/config-history

它将匹配任何路径中的
配置历史记录。

您至少可以使用双星号缩短.gitignore:

# other stuff here
**/config-history

它将在任何路径中匹配
config history

我很快在一个示例回购上尝试了您的方法,但这在子目录上不起作用?随时都会添加新项目,当然,我还想备份新的config.xml。请记住,相对于git,配置位于/[projectname]/config.xml中。
git add
是明确的。需要.gitignore的唯一原因是,不是添加实际要添加的文件,而是添加包含该文件的整个目录。因此:您是否仍在执行git add.
?你真的不应该,我不明白。请参阅我的示例:
>mkdir gittest>cd gittest\gittest>git init。在C:/Users/User/gittest/.Git/\gittest>echo“xx”>config.xml\gittest>mkdir sub\gittest>cd sub\gittest\sub>echo“xx2”>config.xml\gittest\sub>echo“xx4”>other.xml\gittest\sub>cd\gittest>GitAdd-n。添加'config.xml'add'sub/config.xml'add'sub/other.xml'\gittest>git add-n config.xml添加'config.xml'
(请将其复制到某个地方阅读:))这仅用于测试目的。第二个是重要的。但是现在我有了它:
>git add-n*/config.xml
请更新您的anwser以真正匹配我的问题。我已经把它排除在外并投了更高的票,因为这是正确的方向。我很快就在一个样本回购上尝试了你的方法,但这在子目录上不起作用?随时都会添加新项目,当然,我还想备份新的config.xml。请记住,相对于git,配置位于/[projectname]/config.xml中。
git add
是明确的。需要.gitignore的唯一原因是,不是添加实际要添加的文件,而是添加包含该文件的整个目录。因此:您是否仍在执行git add.
?你真的不应该,我不明白。请参阅我的示例:
>mkdir gittest>cd gittest\gittest>git init。在C:/Users/User/gittest/.Git/\gittest>echo“xx”>config.xml\gittest>mkdir sub\gittest>cd sub\gittest\sub>echo“xx2”>config.xml\gittest\sub>echo“xx4”>other.xml\gittest\sub>cd\gittest>GitAdd-n。添加'config.xml'add'sub/config.xml'add'sub/other.xml'\gittest>git add-n config.xml添加'config.xml'
(请将其复制到某个地方阅读:))这仅用于测试目的。第二个是重要的。但是现在我有了它:
>git add-n*/config.xml
请更新您的anwser以真正匹配我的问题。我已经把它排除在外并投了更高的票,因为这是正确的方向。我很快就在一个样本回购上尝试了你的方法,但这在子目录上不起作用?任何时候都有新的项目