Với Git, khi sử dụng autocrlf = true
cờ, cảnh báo vẫn được đưa ra khi kết thúc dòng được thay đổi.
Tôi hiểu cảnh báo là gì và làm cách nào để tắt cờ kết thúc dòng, nhưng làm cách nào để tắt cảnh báo?
Với Git, khi sử dụng autocrlf = true
cờ, cảnh báo vẫn được đưa ra khi kết thúc dòng được thay đổi.
Tôi hiểu cảnh báo là gì và làm cách nào để tắt cờ kết thúc dòng, nhưng làm cách nào để tắt cảnh báo?
Câu trả lời:
Bạn có thể tắt cảnh báo với
git config --global core.safecrlf false
(Điều này sẽ chỉ tắt cảnh báo, không phải chính chức năng.)
Bạn nên sử dụng core.autocrlf input
và core.eol input
. Hoặc chỉ không để git thay đổi kết thúc dòng với autocrlf false
và loại bỏ việc làm nổi bật các crlfs trong diffs, v.v.core.whitespace cr-at-eol
.
Hi vọng điêu nay co ich
Tôi đã sử dụng cách này:
Lưu các tệp hiện tại của bạn trong Git, để không có tác phẩm nào của bạn bị mất.
git add . -u git commit -m "Saving files before refreshing line endings"
Xóa mọi tệp khỏi chỉ mục của Git.
git rm --cached -r .
Viết lại chỉ mục Git để chọn tất cả các kết thúc dòng mới.
git reset --hard
Thêm tất cả các tệp đã thay đổi của bạn trở lại và chuẩn bị chúng cho một cam kết. Đây là cơ hội để bạn kiểm tra tập tin nào, nếu có, không thay đổi.
git add . # It is perfectly safe to see a lot of messages here that read # "warning: CRLF will be replaced by LF in file."
Cam kết thay đổi kho lưu trữ của bạn.
git commit -m "Normalize all the line endings"
git rm --cached -r . && git reset --hard
dường như thực hiện mánh khóe, cảm ơn
Thật thú vị, tôi đã áp dụng cả hai cấu hình như được giải thích ở đây và tệp .gitconfig của tôi chứa 2 dòng này:
[core]
autocrlf = false
whitespace = cr-at-eol
Tuy nhiên, tôi đã nhận được cảnh báo. Bây giờ chỉ để thử tôi đã nhận xét cả hai dòng và cảnh báo thực sự biến mất. Không biết tại sao tôi lại đặt chúng ở vị trí đầu tiên tuy nhiên ...
Đặt "core.safecrlf false" hoạt động. Tuy nhiên, sau khi tôi thay đổi giá trị thành 'true', đầu ra thay đổi từ 'cảnh báo' thành 'gây tử vong' như hiển thị bên dưới.
$ git add -A
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory
$ git config --global core.safecrlf false
$ git reset
$ git config --global core.safecrlf true
$ git add -A
fatal: LF would be replaced by CRLF in .gitignore
$