Có thể yêu cầu Git bỏ qua các liên kết tượng trưng không? Tôi đang làm việc với môi trường Linux/Windows hỗn hợp và, như bạn đã biết, các liên kết tượng trưng được xử lý rất khác nhau giữa hai.Bỏ qua các liên kết tượng trưng trong .gitignore
Trả lời
Sử dụng git version> = 1.6
Git dùng để điều trị sym-liên kết giống như các file thông thường, nhưng các phiên bản git mới hơn (> = 1.6) kiểm tra xem một tập tin là vượt quá một liên kết tượng trưng và sẽ ném một lỗi nghiêm trọng.
ví dụ .:
# git init
# mkdir newdir
# touch newdir/foo
# git add newdir/foo
# git commit -m 'add foo'
# mv newdir /tmp/
# ln -s /tmp/newdir
# touch newdir/bar
# git add newdir/bar
fatal: 'newdir/bar' is beyond a symbolic link
# git add/tmp/newdir
fatal: '/tmp/newdir' is outside repository
# git --version
git version 1.7.3.4
git 1.7.9.5 bổ sung thêm các liên kết mềm, ngay cả khi chúng trỏ đến thứ gì đó bên ngoài kho lưu trữ ... – Izkata
Không, nó không thể làm được điều này trên toàn cầu. Tuy nhiên, nếu bạn có nhiều liên kết tượng trưng ở đây là tập lệnh bash mà bạn có thể sử dụng để dễ dàng thêm chúng vào tệp .gitignore của repo:
for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do
test -L "$f" && echo $f >> .gitignore; # add symlinks
test -d "$f" && echo $f\* >> .gitignore; # add new directories as well
done
Giải pháp tuyệt vời! Hoạt động rất tốt :) Cảm ơn bạn rất nhiều! –
- 1. Emacs và các liên kết tượng trưng
- 2. Liên kết tượng trưng trong windows XP
- 3. Xóa các liên kết tượng trưng trong PHP
- 4. Liên kết cứng và liên kết tượng trưng trong Unix
- 5. chuyển đổi các liên kết tượng trưng tương đối thành các liên kết tượng trưng tuyệt đối
- 6. Làm thế nào tôi có thể bãi bỏ các liên kết tượng trưng trong bash?
- 7. Nói git để bỏ qua các liên kết
- 8. Có thể khiến SCP bỏ qua các liên kết tượng trưng trong quá trình sao chép không?
- 9. android: xác định liên kết tượng trưng
- 10. Tạo liên kết tượng trưng với Java
- 11. .htaccess hoặc liên kết tượng trưng (symlink)
- 12. File.Copy() và Liên kết tượng trưng
- 13. Kiểm tra liên kết tượng trưng
- 14. Nginx không theo các liên kết tượng trưng
- 15. .gitignore không bỏ qua tệp
- 16. Làm thế nào để sao chép chỉ các liên kết tượng trưng thông qua rsync
- 17. Sửa đổi một liên kết tượng trưng trong python
- 18. Liên kết tượng trưng đến một cái móc trong git
- 19. Phát hiện một liên kết tượng trưng trong Java
- 20. Thay thế liên kết tượng trưng quan trọng ‘an toàn’
- 21. Làm cách nào để xóa liên kết tượng trưng?
- 22. .gitignore sẽ không bỏ qua thư mục
- 23. Có gì đằng sau một liên kết tượng trưng?
- 24. tập tin quy tắc debian tạo liên kết tượng trưng
- 25. java sẽ không liên tục giải quyết các liên kết tượng trưng trên Linux
- 26. có thể liên kết tượng trưng tấn công
- 27. Có phiên bản nào của os.getcwd() không liên quan đến các liên kết tượng trưng không?
- 28. tạo liên kết tượng trưng: Lỗi giao thức
- 29. Trình biên dịch không theo các liên kết tượng trưng trong Visual Studio C++
- 30. Không thể hiểu cách gitignore bỏ qua các thư mục
Chính xác thì ý của bạn là gì? Bạn chỉ có thể thêm các liên kết tượng trưng vào .gitignore của bạn nếu đó là những gì bạn muốn. –
Có nhưng nếu chỉ cần thêm tên tập tin, nó cũng sẽ bỏ qua các tập tin được symlinked ... mặc dù tôi đoán tôi có thể chỉ định đường dẫn đầy đủ. Tôi đã hy vọng cho một cái gì đó tôi có thể dính vào một tập tin cấu hình ... – Andrei
Đặt cược tốt nhất của bạn có thể là để tạo ra danh sách với một 'find * -type l', tôi đoán. – Cascabel