2011-08-30 15 views
15

Giả sử bố trí dự án sau: -Hiểu git submodule và "đóng băng" nó ở một cụ thể cam kết băm hoặc phiên bản

mainrepo_git 
    |____ .git 
    |____ .gitmodules 
    |____ proj   <------- directory containing the code files for mainrepo 
      |____ 3rdpartysourcecode <-- directory containing upstream open source code 
      |  |____ .git 
      |  |____ 3rdpartyfiles 
      | 
      |____ mainrepofilesanddirectories 

mainrepo_git chứa mã nguồn Tôi chịu trách nhiệm trực tiếp cho. Tôi có quyền truy cập đọc/ghi và có thể đẩy và kéo trực tiếp đến kho lưu trữ git từ xa mà tôi quản lý.

Lồng nhau bên trong mainrepo_git là thư mục mà tôi đặt tên 3rdpartysourcecode. Thư mục 3rdpartysourcecode này thực tế là một repo git khác (cũng thường được gọi là "git submodule") trỏ đến kho lưu trữ git bên thứ ba nguồn mở do các nhà phát triển khác quản lý. Tôi chỉ có quyền truy cập đọc vào nó. Không có quyền ghi.

Có cách nào 'đóng băng' một băm cam kết cụ thể của mô-đun con git liên quan đến cam kết được thực hiện trong kho lưu trữ chính của tôi không?

Ví dụ, nếu tôi đang ở (hoặc tôi trở lại) cam kết a12ucak trong mainrepo tôi, git submodule của tôi cũng được trở lại là một phiên bản cụ thể mà tôi buộc phải cam kết a12ucak? Và khi tôi chuyển sang cam kết b349jdsak, mô-đun con git của tôi cũng được hoàn nguyên về phiên bản mà tôi liên kết với b349jdsak?

Vì vậy, câu hỏi của tôi là: có một cách để tạo liên kết giữa một cam kết cụ thể trong repo chính với một cam kết tương ứng trong mô-đun con git? Theo cách mà khi tôi kiểm tra commit cụ thể đó trong repo git chính, commit tương ứng trong git submodule cũng sẽ được checkout.

Trả lời

11

Làm lạnh là toàn bộ điểm của mô-đun con. Bạn thực sự nên đọc một hướng dẫn về nó. Tóm lại, git add 3rdpartysourcecode (quan trọng không có dấu gạch chéo!) Theo sau là một cam kết khóa các submodule hiện đang kiểm tra cam kết cam kết siêu mô-đun. Sau đó, bạn sử dụng git submodule update để xem bản sửa đổi đó.

+2

Chính xác. Xem thêm http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC

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