Vì giá rẻ của nó, tôi sử dụng commit
để giữ ảnh chụp nhanh WIP hàng ngày của mình. Vì vậy, lịch sử cam kết của tôi chứa nhiều cam kết chụp nhanh và một số cam kết chính được trộn lẫn với nhau.Cách thực hành tốt nhất để ghép vào NEXT cam kết trong git rebase -i?
Trước khi đẩy công việc của tôi đến kho lưu trữ từ xa, tôi có thể cảm thấy như làm sạch lịch sử của mình để chỉ chứa các cam kết chính bằng cách ghép ảnh chụp tiếp tục trực tiếp theo các cam kết chính. Thông tin ngày của các cam kết chính là quan trọng đối với tôi bởi vì nó nhớ lại tôi khi nào và những gì tôi đã thay đổi.
Sử dụng các lệnh squash/fixup trong git rebase -i
có thể có một số trợ giúp nhưng chúng kết hợp với cam kết PREVIOUS và ngày tác giả của chúng không phải là những gì tôi muốn.
Việc sắp xếp lại các cam kết sau đó đè bẹp thường dẫn đến xung đột không cần thiết, đó cũng là điều tôi muốn tránh.
So. Thực hành tốt nhất để thỏa mãn ước muốn của tôi là gì?
[Cập nhật] 2016/07/03
Lấy cảm hứng từ câu trả lời torek, tôi đã đưa ra một giải pháp: sử dụng git rebase -i
như thường lệ, thiết lập các mục tiêu cam kết rằng Tôi muốn cam kết trước đó để meld vào để edit
, sau đó thực hiện git reset HEAD~n
nơi n là số nhận xét trước đó mà tôi muốn kết hợp. Và cam kết những thay đổi melded với:
% git commit --amend --date "$(grep DATE .git/rebase-merge/author-script | cut -f2 -d '=')"
Sau đó, hoàn thành phần còn lại của công trình của git rebase --continue
.
Về cụm từ "ảnh chụp nhanh WIP hàng ngày": Tôi (và nhiều người khác) khuyên bạn nên [Commit sớm] (//blog.codinghorror.com/check-in-early-check-in-often/), [Commit thường xuyên] (// sethrobertson.github.io/GitBestPractices/#commit). Vào những ngày làm việc hiệu quả, tôi thường sẽ có * ít nhất * một tá hoặc hai cam kết. –
Có, tôi đồng ý với những gì trang web nói. Tôi đã làm theo cách tương tự trước khi tôi bắt đầu làm việc cho một nhóm phát triển. –