让我们看看它是什么
sub
& test
mkdir test sub cd test && git init && touch README && git add README && git commit -m "initialize the git repo" && cd .. cd sub && git init && touch README && git add README && git commit -m "initialize the sub git repo" && cd ..
sub
repo移至test
mv sub test cd test git add sub git commit -m "add sub directory"
我想将它们视为一个git repo并远程推送它们,但现在sub
目录下的文件不能包括在内?
如何以简单的方式实现这一点,例如将sub视为普通目录?
此案例
我尝试使用JENKINS_HOME
将我的jenkins数据文件夹(Dockerfile
)添加到docker镜像中进行演示。 (ADD JEKINS_HOME /opt/jenkins
)
JENKINS_HOME
Dockerfile
我的jenkin有scriptler plugin,其中包含git repo用于其目的。然后它存在于我的docker image git repo中,如下面的
$ find jenkins-docker ./.git ./.git/.. (skipped ./Dockerfile ./JENKINS_HOME ./JENKINS_HOME/scriptler ./JENKINS_HOME/scriptler/scripts ./JENKINS_HOME/scriptler/scripts/.git ./JENKINS_HOME/scriptler/scripts/.git/... (skipped) ./JENKINS_HOME/scriptler/scripts/Sample.groovy ./JENKINS_HOME/... (skipped) ./README
答案 0 :(得分:1)
似乎你做不到。名称.git
在源代码中是硬编码的:https://github.com/git/git/blob/fe9122a35213827348c521a16ffd0cf2652c4ac5/dir.c#L1260
可能一种方法是创建一个脚本,将.git
重命名为其他内容并在将其添加到repo中之前和之后返回
在scripts
mv .git hidden-git
在Dockerfile中
RUN mv $JENKINS_HOME/scriptler/scripts/hidden-git
$JENKINS_HOME/scriptler/scripts/.git
或者,可能可以将GIT_DIR
环境变量传递到插件中,因此可以使用其他名称。
答案 1 :(得分:0)
<ul>
<li [attr.data-selected]="false"
(click)="hightlightStatus[i]=!hightlightStatus[i]"
[class.highlight]="hightlightStatus[i]"
*ngFor="let item of items, let i = index">
{{item}}
</li>
</ul>
我想将它们视为一个git repo并远程推送它们,但现在不能包含子目录下的文件了吗?
它们不包括在内,因为git add sub
git commit -m "add sub directory"
看到了repo test
as nested git repo, and records only its gitlink, or SHA1,而不是它的url,如果sub
被添加为子模块的话。
您需要先将sub
推送到远程网址,然后将其添加为sub
的子模块,以查看test
个文件。
sub
或者你需要to use a subtree
cd test
git submodule add -- /url/to/sub