2009-09-30 16 views
21

Ai đó đã hỏi làm thế nào bạn có thể nhận được git để làm theo các liên kết tượng trưng. Đã có câu trả lời cho thư mục được liên kết với symlinked, nhưng không phải cho một tệp có liên kết được symlinked . Nó cũng đã hơn một năm trước.Nhận git để theo dõi các liên kết (một lần nữa)

Câu hỏi: làm thế nào để bạn có được git theo một liên kết tượng trưng và thêm tệp mà nó đề cập đến?

Đây là câu hỏi cũ: How can I get git to follow symlinks?. Ngoài ra còn có một câu hỏi về những gì git thường làm How does git handle symbolic links?. Tôi đang theo cách thay đổi hành vi này.

Trong trường hợp bạn quan tâm: Tôi đang chạy git 1.5.4.3 trên unix và git phiên bản 1.6.0 trên mac.

Trả lời

22

Tôi chắc chắn không có cách nào.

Ngoài ra, nó có vẻ giống như một loại hành vi không an toàn, không xác định - bạn nên làm gì khi di chuyển giữa các phiên bản của tệp và nó cần ghi vào nó? Đặc biệt, nếu bạn kiểm tra một bản sửa đổi trước khi nó được thêm vào, bạn có thực sự muốn nó xóa nội dung của một tệp bên ngoài kho lưu trữ không? Điều gì xảy ra nếu bạn quay trở lại hiện tại và tạo lại tệp, hoặc nếu chính liên kết tượng trưng được sửa đổi - nên git cũng theo dõi chính liên kết đó không?

Mọi thứ dọc theo các dòng này là said on the git mailing list vào cuối năm ngoái để trả lời cho cùng một câu hỏi.

+0

đây là một số điểm tuyệt vời - cảm ơn. – Peter

+1

Vâng, thật không may. Tôi biết nó sẽ được thực sự tốt đẹp để làm theo các liên kết trong một số trường hợp. Có một cách tiếp cận được đề xuất trong một trong những câu trả lời ở đó - tạo các liên kết tệp bên ngoài-repo vào repo và có thể vẫn bao gồm các liên kết tượng trưng cho chúng từ bên trong repo. Hy vọng bạn tìm cách để làm những gì bạn cần! – Cascabel

6

thế nào về việc sử dụng các liên kết cứng, sau đó git không có ý tưởng một file liên kết của nó (đúng không?)

11

Bạn có thể sử dụng liên kết cứng thay vì softlinks (symlink a.k.a.). Sau đó, Git sẽ xem nội dung của tệp được liên kết. Điểm bất lợi là khi ai đó kiểm tra, tập tin được tạo ra như một tập tin bình thường trong thư mục kiểm tra, bởi vì Git không hiểu nó như là một liên kết.

2

Sự cố khi sử dụng liên kết cứng là nếu có gì đó ghi vào vị trí khác thay thế tệp, thay vì chỉ viết thay đổi, thì tệp đích có inode mới trên hệ thống tệp và liên kết cứng không còn trỏ đến nó nữa, để các tệp không đồng bộ.

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