2012-03-21 18 views
12

Tôi đã thấy một số giải pháp được đề xuất, nhưng gần như tất cả chúng đều nằm trong khoảng trống từ toàn bộ tệp nếu nó đã bị thay đổi, đây không phải là một tùy chọn. Tôi cũng đã thử:Làm cách nào tôi có thể xóa khoảng trắng theo sau chỉ trên các dòng đã thay đổi trong móc git được cam kết trước?

git diff -w --no-color | git apply --cached 

nhưng dường như không hoạt động. Tôi đang sử dụng git phiên bản 1.6.3.1 và không thể cập nhật nó.

Trả lời

9

Tìm thấy câu trả lời:

git diff --cached --no-color > stage.diff && git apply --index -R stage.diff && git apply --index --whitespace=fix stage.diff && rm -f stage.diff 
+0

Tôi mất quá nhiều thời gian để tìm ra rằng 'git apply' sẽ xảy ra ở thư mục gốc hoặc nó sẽ không hoạt động. –

+0

Dường như không hoạt động trên các tệp giai đoạn một phần (Git 1.9.2 trên Linux). –

1

Tôi không có kịch bản như vậy tiện dụng, nhưng tôi đoán điểm bắt đầu tốt là mẫu trước cam kết móc với git (trước khi được chuyển thành diff --check). Ít nhất nó chỉ cảnh báo về các dòng được thêm vào.

gitweb view of pre-commit script

0

Câu hỏi này là một chút cũ, nhưng tôi đã có git ws aliased để git rebase --whitespace=fix

Bạn có thể thiết lập một bí danh tương tự bằng cách chạy

git config --global alias.ws 'rebase --whitespace=fix' 

Th tại sẽ có bất kỳ cam kết nào mà bạn chưa đẩy và áp dụng lại chúng sau khi đã sửa khoảng trống trên chỉ những dòng mà bạn đã thay đổi.

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