我可以在git-ignored文件夹中有一个嵌套的git repo吗?

And*_*sne 24 git github git-submodules

我有一个git repo,它有以下文件夹:

 _includes/
 _layouts/
 _plugins/
 _posts/
 _site/
Run Code Online (Sandbox Code Playgroud)

_site文件夹已添加到.gitignore文件中.

现在,我可以在_site文件夹中使用不同的远程仓库进行推送和拉取的git repo吗?会有冲突吗?

我已经研究过git子模块,但我认为如果上述方法可行,那么在我的情况下这将是一种矫枉过正.

Jua*_*ado 15

我认为它应该有效.对于主仓库,_site文件夹不存在.所以你里面的东西并不重要.当你cd进入_site你的那个独立回购.

  • 但请记住,这可能会导致一些问题.其中一个问题是外部仓库中的`git clean -dfx`将删除嵌套的仓库.因此,用户必须小心.也许最好将符号链接文件夹.在运行`git clean`的情况下,符号链接将被删除,嵌套的repo将保持不变. (15认同)

mpd*_*rty 7

是的 - 我刚尝试过.这是我的命令行会话:

$ mkdir temp
$ cd temp
$ git init 
Initialized empty Git repository in /Users/mpdaugherty/temp/.git/
$ git add .
$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)
$ echo 'ignore' >> .gitignore
$ git add .
$ git commit -a -m 'first commit'
[master (root-commit) 17d293c] first commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 .gitignore
$ mkdir ignore
$ git status
# On branch master
nothing to commit (working directory clean)
$ cd ignore
$ git init .
Initialized empty Git repository in /Users/mpdaugherty/temp/ignore/.git/
$ echo 'Some text' > somefile.txt
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   somefile.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add .
$ git commit -a -m 'initial commit'
[master (root-commit) 107f980] initial commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 somefile.txt
$ cd ..
$ git status
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)