2010-04-24 34 views
5

Để có dự án django mới và chạy nhanh hơn, tôi muốn duy trì một "bộ xương dự án" riêng biệt mà tôi căn cứ tất cả các dự án mới của mình. Nó sẽ là tuyệt vời nếu, như tôi cải thiện bộ xương, tôi có thể mang lại những cải tiến vào các dự án hoạt động của tôi. Làm thế nào tôi có thể thực hiện điều này với git?Tạo dự án mới từ bộ khung dự án bằng git

Vì vậy, có thể trong máy git kho lưu trữ từ xa của tôi, tôi sẽ có 1 repo cho mỗi dự án và một cho bộ xương?

  • Proj-A-repo
  • Proj-B-repo
  • skeleton-repo

Nếu tôi muốn tạo ra một mới Proj-C tại địa phương dựa trên bộ xương, sau đó đẩy tôi thay đổi cục bộ lên đến máy chủ từ xa trong một repo mới gọi là proj-C-repo, làm thế nào tôi có thể làm điều này?

Tôi đã đọc qua khá nhiều tài liệu về git, nhưng tôi đã nhầm lẫn về cách thực hiện việc này. Tôi có cần phải sao chép bộ xương, hoặc tạo một repo trống và sau đó theo dõi một chi nhánh từ xa, hoặc cái gì khác?

Trả lời

9

Đây chính xác là những gì git (hoặc bất kỳ DVCS) nào tốt. Cung cấp cho bộ khung repo của riêng nó; để tạo một dự án mới, bạn thường là clone bộ xương trên máy trạm của bạn, làm việc đi, sau đó push đến một vị trí khác (ví dụ: myserver: repo-C). Nếu sau này bạn cải thiện bộ xương và đẩy các thay đổi vào bộ xương, bạn có thể làm việc với một dự án hiện tại với git pull myserver:skeleton và sau đó hợp nhất.

+1

Đó chính xác là những gì tôi đang tìm kiếm. Cảm ơn rất nhiều. – asciitaxi

+1

Để mở rộng về điều này, tôi cũng tìm thấy câu trả lời này về việc thêm và đổi tên git điều khiển từ xa hữu ích: http://stackoverflow.com/questions/1221840/error-remote-origin-already-exists-on-git-push-to-new -repository – Matt

+0

Yea, khóa đang đổi tên móc sau bản sao. Bạn cũng có thể sao chép và đổi tên các điều khiển từ xa trực tiếp trên máy chủ "trung tâm" trước khi sao chép/kéo đến máy trạm của bạn. Bạn chắc chắn nên sao chép/đẩy đến một repo off-workstation trước khi bạn nhận được nhiều hơn một vài giờ vào dự án mới để những người khác có thể nhìn thấy những gì bạn đang lên đến, và bạn có một ref để trở lại. – hobs

0

Bạn có thể làm như sau:

Tạo một repo Git đó là bộ xương của bạn và thêm những thứ đó là trong A và B repo để .gitignore của bạn. Sau đó, init kho git mới ở vị trí A và B và đẩy đến đó.

Bằng cách đó bạn kết thúc với:

skeleton 
+---> .git 
+---> project A 
    +-----> .git 
+---> project B 
    +-----> .git 

Tôi chỉ cố gắng này và nó làm việc có một git repo bên trong một repo git, miễn là bạn thêm subrepo đến .gitignore ..

+0

Nó đánh tôi như một chút kỳ quặc khi có dự án "chứa" trong bộ xương. –

+0

Tôi nghĩ ý tưởng chung là có bộ khung là dự án riêng của nó, có thể sử dụng lại được với các dự án khác. Vì vậy, có họ chia sẻ một phần của lịch sử của họ là không thực sự tốt vì bạn phải anh đào chọn tất cả các thay đổi trở lại bộ xương .. Nhưng anh đào chọn cũng sẽ làm việc – Tigraine

+0

Cool nested git repo ý tưởng. Có thể khá hữu ích cho các ứng dụng khác. – hobs

0

Bạn có thể tìm thấy một ví dụ tốt về bộ xương dự án với điều này sbt console template

Nếu bạn sao chép nó và launch sbt, bạn sẽ nhận được đầy đủ chức năng Scala dự án:

  • mà có thể được biên dịch, thực hiện , kiểm tra và thậm chí eclipsified (được nhập khẩu như là một dự án eclipse) !.
  • có thể được lưu trữ trong repo Git của riêng mình, với .gitignore đã được định cấu hình.
Các vấn đề liên quan