2010-10-30 37 views
9

Xin chào, tôi đang làm việc trên hai chương trình cùng một lúc. Giả sử A và B là hai thư mục khác nhau trong các thư mục khác nhau. Có thể có cả hai là một phần của cùng một dự án git? Bởi vì tôi sử dụng dữ liệu từ A làm đầu vào cho B, nhưng vì A là một ứng dụng web, tôi đã đặt nó trong public_html trong khi B nằm trong một thư mục khác.Làm cách nào để đưa hai thư mục khác nhau vào cùng một dự án git?

+0

Bạn đã xem [git-submodule] (http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html) chưa? – takeshin

Trả lời

4

Câu trả lời ngắn gọn, bạn không thể. Làm cho mỗi kho chứa git riêng biệt. Hai chương trình khác nhau không thuộc cùng một kho lưu trữ.

Câu trả lời dài: Cách duy nhất là tạo một repo git cao hơn trong hệ thống tệp tại điểm mà hai thư mục chia sẻ một tổ tiên chung. Điều này thậm chí có thể là gốc của hệ thống tệp của bạn. Bạn có thể thêm từng thư mục dự án vào repo và chỉ định mọi thứ khác trong .gitignore. Điều này rõ ràng là ít hơn lý tưởng.

11

Tạo dự án git với hai thư mục, đặt nó ở một nơi khác và sau đó chỉ cần tạo symlinks ở hai vị trí mà bạn cần hai thư mục.

 
$ ls -a myproject 
. .. .git A B 
$ ln -s myproject/A A 
$ cd public_html 
$ ln -s ../myproject/B B 
$ cd .. 
$ ls 
myproject A public_html 
$ ls public_html 
B 
+0

+1: Giải pháp gọn gàng. Tất nhiên, nó sẽ không hoạt động được @ Karthick làm việc dưới Windows. – Johnsyweb

+0

bạn có thử không? Tôi không nghĩ rằng git sẽ theo đó symlink –

+1

@AdamRabung Git không cần phải làm theo các liên kết tượng trưng trong ví dụ này. A và B đều trực tiếp trong thư mục được quản lý bởi Git. Có các liên kết tượng trưng trỏ * vào * thư mục Git, cần phải được theo sau bởi bất kỳ phần mềm nào bạn sử dụng (ví dụ, bạn sẽ cần phải cấu hình máy chủ web của bạn để theo các liên kết tượng trưng, ​​nhưng thường không khó). –

Các vấn đề liên quan