Cập nhật: Như những người khác đã chỉ ra, không làm bất kỳ việc rebasing hoặc lịch sử viết lại bất kỳ loại nào nếu bạn đã đẩy đến nguồn gốc từ xa và chia sẻ mã này với các nhà phát triển khác. Câu trả lời ngắn: Nguy hiểm và nguy hiểm!
Tôi khuyên bạn nên kiểm tra lệnh rebase cho việc này. Nó thực hiện chính xác những gì bạn đang yêu cầu
gì điều này là lấy cam nhỏ hơn và kết hợp chúng thành những người lớn hơn
Để sử dụng nó:
git rebase -i HEAD~5
biên tập viên của bạn sẽ bật lên với 5 người cuối cùng cam kết từ người đứng đầu chi nhánh hiện tại, với một số tài liệu. Trong trường hợp của bạn, bạn sẽ muốn sử dụng squash
. Các trang web tôi liên kết giải thích nó thực sự tốt, họ có ví dụ này:
pick 01d1124 Adding license
squash 6340aaa Moving license into its own file
squash ebfd367 Jekyll has become self-aware.
squash 30e0ccb Changed the tagline in the binary, too.
này sẽ đóng gói 3 cam kết trước đó và đặt chúng tất cả dưới một trong những bạn đã đánh dấu là pick
. Sau đó, bạn có thể sửa đổi thông báo cam kết và v.v.
Have fun
Xem thêm http://stackoverflow.com/questions/2302736/trimming-git-checkins-squashing-git-history/2302947#2302947 cho cam kết bẻ khóa – VonC
Bạn cũng có thể muốn xem xét thêm một móc trước cam kết để trợ giúp xem lại kiểu mã hóa của bạn. Với điều đó, bạn có thể có git phàn nàn nếu bạn cố gắng cam kết mã vi phạm một số tiêu chuẩn mà bạn đã đặt. Bạn có thể giúp ngăn chặn các cam kết xấu ngay từ đầu! Ví dụ trước commit hook ('.git/hooks/pre-commit.sample') tìm kiếm những thứ như dấu cách sau dấu phẩy. Bạn có thể bọc GNU thụt lề trong một tập lệnh, ví dụ, để thực thi một kiểu mã hóa cụ thể, và đặt nó vào móc trước của bạn. –