2012-01-02 19 views
7

Tôi có một codebase lớn, trong đó hầu như mọi tệp đơn lẻ không được căn chỉnh đúng cách, có khoảng cách sai giữa các biến hoặc các phương thức, hoặc chỉ là mã xấu.Cách tốt nhất để quản lý các cam kết dọn dẹp trong git cho một dự án kế thừa là gì?

Tôi muốn làm cho nó tốt hơn khi tôi làm việc với nó, nhưng sửa chữa những thứ như thụt lề làm cho lịch sử cam kết khá xấu xí.

Tôi không nói về vấn đề thụt đầu dòng nhỏ, nơi một dòng là một không gian hết, tôi đang nói về cái gì đó như

class Xyz 
def foo 
end 

    def bar 
    @something 
end 
    end 

một cách tốt để dọn dẹp mã như thế này, trong khi vẫn giữ lịch sử của tôi là gì liên quan, thích hợp? Tôi có nên tự động sắp xếp mọi thứ cùng một lúc và thực hiện một cam kết lớn không?

Trả lời

8

Tôi sẽ sửa tất cả điều này trong một chi nhánh riêng biệt (địa phương). Một khi tôi đã sẵn sàng tôi sẽ thực hiện một "bí merge"

git checkout -b cleanup develop 
# Do some cleanup, do some commits and so on 
git checkout develop 
git merge --squash cleanup 
git commit -m "My Cleanup" 
git branch -D cleanup 

Bằng cách này tôi sẽ nhận được một "khổng lồ cam kết" với những thay đổi này, nhưng tôi sẽ không tin tưởng bất kỳ tính năng tự động định dạng (ít nhất là không hoàn toàn) và Tôi không phải làm điều đó vào một ngày, hoặc hoàn toàn không có bất kỳ cam kết nào cho đến khi hợp nhất.

1

Bạn có thể làm sạch trong một nhánh riêng biệt và khi thực hiện hợp nhất nó trở lại vào nhánh chính.

Điều này mang lại cho bạn thời gian để dọn dẹp và bạn không phải chỉnh sửa lịch sử (điều tôi chưa bao giờ làm)

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