2012-04-18 38 views
24

我有有下列文件夾一個混帳回購協議:我可以在一個git-ignored文件夾中有一個嵌套的git倉庫嗎?

_includes/ 
_layouts/ 
_plugins/ 
_posts/ 
_site/ 

_site文件夾在.gitignore文件添加。

現在我可以在_site文件夾內使用不同的遠程回購進行push和pull嗎?會有衝突嗎?

我研究過git子模塊,但我認爲如果上述方法可以工作的話,對我而言這將是一種矯枉過正的行爲。

+0

我會很驚訝,如果它的工作,即使它可以有驚喜,因爲它不打算/設計工作。 Git子模塊沒有矯枉過正,只需要一些時間來了解基礎知識:) – CharlesB 2012-04-18 08:16:54

+0

同樣,如果您處於子模塊之外,則無法告訴主要回購修訂版本「_site」在 – CharlesB 2012-04-18 08:18:44

+0

「您無法告訴主要回購什麼修訂_網站是「但'_site'在'.g​​itignore',所以主要回購已不知道任何關於'_site'文件夾。 – 2012-04-18 08:45:25

回答

14

我認爲它應該工作。對於主要的回購,_site文件夾不存在。所以你在裏面有什麼並不重要。當您將cd轉換爲_site時,您將在該獨立回購中。

+14

但是,請記住,它可能會導致一些問題。其中一個問題是,外部回購中的'git clean -dfx'將刪除嵌套的回購。因此,用戶必須小心。也許這會更好地符號鏈接文件夾。在運行'git clean'的情況下,符號鏈接將被刪除,並且嵌套的回購將保持不變。 – Yamaneko 2014-04-17 04:42:07

+0

不錯的一點!不知道! – 2014-04-17 08:58:11

6

是的 - 我剛試過。這裏是我的命令行會話:

$ 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) 
相關問題