2012-04-18 45 views
24

Tôi có một repo git có thư mục sau:Tôi có thể có một repo git lồng nhau trong thư mục git-ignore không?

_includes/ 
_layouts/ 
_plugins/ 
_posts/ 
_site/ 

thư mục _site được thêm vào trong file .gitignore.

Bây giờ tôi có thể có một thư viện git repo bên trong thư mục _site với repo từ xa khác nhau để đẩy và kéo? Liệu có bất kỳ xung đột nào không?

Tôi đã nghiên cứu mô đun con git nhưng tôi nghĩ rằng nó sẽ là quá mức cần thiết trong trường hợp của tôi, nếu phương pháp đã nêu ở trên có thể hoạt động.

+0

Tôi sẽ ngạc nhiên nếu nó hoạt động và thậm chí nếu bạn có thể ngạc nhiên vì nó không được thiết kế/thiết kế để hoạt động. Git submodules không quá mức cần thiết, chỉ cần dành chút thời gian để hiểu những điều cơ bản :) – CharlesB

+0

Cũng bằng cách ở ngoài các mô-đun con, bạn mất khả năng thông báo cho repo chính bản sửa đổi '_site' là – CharlesB

+0

" bạn mất khả năng nói chính repo những gì sửa đổi _site là tại "Nhưng' _site' là trong '.gitignore' để repo chính đã không biết bất cứ điều gì về thư mục' _site'. –

Trả lời

14

Tôi nghĩ rằng nó sẽ hoạt động. Đối với repo chính, _site thư mục không tồn tại. Vì vậy, những gì bạn có bên trong nó không quan trọng. Khi bạn cd vào _site, bạn sẽ ở trên repo độc lập đó.

+14

Tuy nhiên, hãy nhớ rằng nó có thể dẫn đến một số vấn đề. Một trong những vấn đề là 'git clean -dfx' trong repo bên ngoài sẽ loại bỏ repo lồng nhau. Do đó, người dùng phải cẩn thận. Có lẽ sẽ tốt hơn nếu liên kết thư mục với thư mục. Trong trường hợp chạy 'git clean', liên kết tượng trưng sẽ bị xóa và repo lồng nhau sẽ vẫn nguyên vẹn. – Yamaneko

+0

Điểm tốt! Không biết điều đó! –

6

Có - Tôi vừa thử. Đây là phiên họp dòng lệnh của tôi:

$ 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) 
Các vấn đề liên quan