Các .git/config
thể được ghi đè địa phương bởi ~/.gitconfig
.
Vì vậy, như một phần của tập lệnh xây dựng, Makefile hoặc cung cấp, bạn có thể đề xuất thay đổi cho người dùng vào ~/.gitconfig
hoặc tải tập lệnh cục bộ .gitconfig
qua git config
.
Ví dụ, tạo mới .gitconfig
với một số cài đặt và tải nó bằng cách:
git config --local include.path "/path/to/.gitconfig"
hoặc yêu cầu người dùng phải có trong ~/.gitconfig
những họ dòng:
[include]
path = .gitconfig
Nếu bạn đang sử dụng Vagrant như một phần của phân phối mã, bạn có thể tải cấu hình git từ Vagrantfile
theo:
system('GIT_TRACE=1 git config --local include.path "$(git rev-parse --show-toplevel)/git/gitconfig"');
sau đó cam kết cấu hình git của bạn trong git/gitconfig
, vì vậy mỗi khi người dùng chạy cấp phép máy ảo của họ, tệp này sẽ được tải tự động cho git của họ trên máy chủ (ví dụ: để thực thi core.filemode
bị vô hiệu hóa, vì vậy Windows sẽ không có bất kỳ sự cố nào với quyền đối với tệp).
Để buộc kết thúc dòng cho người dùng, bạn nên sử dụng .gitattributes
thay vì sẽ hoạt động ngoài hộp. cú pháp mẫu để sử dụng kết thúc dòng Unix-like (LF
):
# Drupal git normalization
# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
# @see https://www.drupal.org/node/1542048
# Define text file attributes.
# - Treat them as text.
# - Ensure no CRLF line-endings, neither on checkout nor on checkin.
# - Detect whitespace errors.
# - Exposed by default in `git diff --color` on the CLI.
# - Validate with `git diff --check`.
# - Deny applying with `git apply --whitespace=error-all`.
# - Fix automatically with `git apply --whitespace=fix`.
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
# Auto-detect text files, ensure they use LF.
* text=auto eol=lf
# Define binary file attributes.
# - Do not treat them as text.
# - Include binary diff in patches instead of "binary files differ."
*.gz -text diff
Xem thêm http://stackoverflow.com/questions/2332349/best-practices-for-cross-platform-git-config: bạn có thể có một câu trả lời để thêm vào câu hỏi tương tự này. – VonC
cảm ơn, nhưng tôi là một chút quan tâm của tất cả các tiêu cực chống lại autocrlf, tại sao không loại bỏ tính năng này nếu nó không hoạt động?Các nhà sản xuất của tính năng này bị hiểu lầm hoặc họ đã thực hiện một thử nghiệm không thành công với nó và nó sẽ bị xóa để ngăn chặn nhiều người lãng phí thời gian của họ hơn (đọc trang người tối nghĩa, đặt câu hỏi, mọi người trả lời những câu hỏi đó, v.v.) – nraynaud