Làm thế nào để bạn thêm các tệp thực thi Linux vào .gitignore mà không cung cấp cho chúng một phần mở rộng rõ ràng và không đặt chúng trong một thư mục cụ thể hoặc/bin? Hầu hết được đặt tên giống như tệp C mà từ đó chúng được biên dịch mà không có phần mở rộng ".c".Cách thêm tệp thực thi Linux vào .gitignore?
Trả lời
Tôi sẽ đặt chúng một cách rõ ràng trong dự án .gitignore. Nó không thanh lịch, nhưng tôi tưởng tượng dự án của bạn không có rằng nhiều người trong số họ.
Lý do tôi tình cờ gặp câu hỏi này là chính xác vì nó * có * mà nhiều người trong số họ. –
Một cách tạo ra sự khác biệt so với bạn .gitignore
trong một đi từ tất cả các file thực thi từ thư mục hiện hành:
find . -perm /111 -type f | sed 's#^./##' | sort | diff -u .gitignore -
này tạo ra một diff có nghĩa là bạn không bị mất bất kỳ thay đổi bằng tay để các tập tin. Điều này giả định tệp .gitignore
của bạn đã được sắp xếp. Các phần sed chỉ dải ./
hàng đầu mà tìm thấy tạo ra.
Không có cách tự động nào để bỏ qua chỉ các tệp thực thi, vì vậy bạn sẽ luôn phải quản lý tệp.
Bạn có thể bỏ qua tất cả, nhưng tệp mã nguồn không?
Ví dụ:
*
!*.c
!Makefile
Tôi đã viết một kịch bản để tự động thêm thực thi ELF để .gitignore
.
git-ignore-elf
:
#!/bin/sh
set -eu
cd "$(git rev-parse --show-toplevel)"
file=.gitignore
new=$file.new.$$
(
if [ -e "$file" ]; then
cat "$file"
fi
find . -name .git -prune -o -type f ! -name '*.o' ! -name '*.so' \
-print0 | xargs -0 file | grep ': *ELF ' | sed 's/:.*//' |
sed 's,^./,,'
) | perl -ne 'print if !$already{$_}++' >"$new"
mv "$new" "$file"
Các tính năng:
- bắt đầu tìm kiếm từ thư mục cấp cao nhất (có thể là một misfeature!)
- bỏ qua file ELF, trừ .o và các file .so có thể bỏ qua với quy tắc chung là
- duy trì các mục nhập hiện có trong .gitignore mà không cần sao chép chúng
phiên bản đơn Kịch bản này là ở đây: http://sam.nipl.net/b/git-ignore-elf-1
Đây là một phiên bản mô-đun hơn, mà phụ thuộc vào kịch bản khác (git-root, tìm-tinh, uniqo) từ cùng một vị trí: http://sam.nipl.net/b/git-ignore-elf
có câu trả lời tương tự bằng cách sử dụng python và tệp (1), ở đây: http://stackoverflow.com/a/19749478/218294 –
Hầu hết các nhà phát triển thường có một thư mục build
trong dự án của họ nơi thực thi quá trình xây dựng thực tế. Vì vậy, tất cả các tệp thi hành, .o
, .so
, .a
, v.v. ở đó và thư mục xây dựng này được thêm vào .gitignore
.
- 1. Thêm .gitignore vào gitignore
- 2. thêm # * # glob vào .gitignore?
- 3. Thực tiễn tốt nhất để thêm .gitignore vào Repo
- 4. Tệp đối tượng trong tệp thực thi trong Linux
- 5. Cách thêm đường dẫn tìm kiếm thư viện được chia sẻ vào tệp thực thi?
- 6. Đóng gói tệp vào tệp thực thi ELF
- 7. Cách thêm tệp .so vào java.library.path trong Linux
- 8. Làm cách nào để thêm biểu tượng vào tệp thực thi được biên dịch mingw-gcc?
- 9. Tự động thêm .gitignore và móc vào git init
- 10. Trong Linux, cách thực thi tệp jar Java với các tệp jar bên ngoài?
- 11. Tạo các tệp thi hành trong Linux
- 12. Làm cách nào để thêm quyền thực thi vào tệp trong CVS sau khi đã được kiểm tra?
- 13. Cách thêm công việc cron vào linux
- 14. Đóng gói Node.js-Scripts + node.exe vào một Tệp thực thi
- 15. Các tác động có thể có của việc thêm tệp * .sdf vào .gitignore
- 16. Cách thêm nhiều tệp jar trong classpath trong linux
- 17. Git - Tạo tệp .gitignore
- 18. Làm cách nào để tìm kiếm tệp thực thi bằng python trong linux?
- 19. Tạo tệp thực thi cho Windows bằng cách sử dụng Qt trên Linux
- 20. Cách an toàn nhất để chạy một tệp thực thi trên Linux là gì?
- 21. gitignore - gây tử vong: không có tệp nào được thêm
- 22. Làm cách nào để gitignore * chỉ * tệp?
- 23. Thực tiễn tốt nhất để sử dụng nhiều tệp .gitignore
- 24. Thực thi độc lập với mono trên linux?
- 25. Thực thi chương trình C trong Linux ga
- 26. Làm cách nào để thực thi một tệp thực thi được nhúng dưới dạng tài nguyên
- 27. Bạn có thể thêm các tệp nguồn khác vào tệp thực thi sau khi được xác định không?
- 28. cmake: Cách thêm add_custom_command chỉ thực thi shellscript?
- 29. Phân bổ ram thực thi trong c trên linux
- 30. cách tính toán sự khác nhau giữa hai tệp nhị phân (tức là hai tệp thực thi) trong linux
Đây là một bản sao của http://stackoverflow.com/questions/5711120/gitignore-without-binary-files Có thể hợp nhất chúng. –
Không, có sự khác biệt giữa các tệp thi hành và tệp nhị phân. Tôi thấy cần phải bỏ qua cả tập lệnh thực thi và tệp nhị phân. Tôi không nghĩ câu hỏi này trùng lặp. – Alexander