Tôi có kho Git ban đầu được nhập từ Subversion. Các bộ phận của tác giả/thông tin của người gửi tiền sai, không phải là lỗi của Git mà chủ yếu là do sự cẩu thả cam kết với Subversion.Sử dụng bộ lọc git-branch để viết lại tác giả/ủy thác và cam kết tin nhắn đồng thời
Tôi muốn sử dụng git filter-branch
để viết lại lịch sử của kho lưu trữ, sửa thông tin người gửi và tác giả.
Sự cố là ... Tôi cần phải trích xuất thông tin tác giả ra khỏi cam kết tin nhắn. Theo như tôi có thể biết, git filter-branch
cho phép bạn lọc và thay đổi thông tin tác giả (với --env-filter
) và/hoặc để lọc thông báo cam kết (với --msg-filter
), nhưng không để thực hiện cả hai cùng một lúc, với thông tin được chia sẻ giữa các bộ lọc khác nhau .
Vì vậy, tôi là loại stumped về cách làm điều này ... tốt nhất tôi có thể nghĩ là làm điều đó trong nhiều lần: đầu tiên, thu thập tất cả các thông điệp cam kết, sau đó thực hiện một kịch bản để đi qua và lọc tất cả thông tin tác giả/người gửi. Điều này có vẻ khá không phù hợp và dễ xảy ra lỗi, vì vậy tôi tự hỏi liệu có ai khác đã tìm ra một loại công việc này suôn sẻ hơn không.
Cảm ơn, Jefromi, tôi sẽ cho cú đánh này! Ngoài ra, điểm tốt về thứ tự của bộ lọc --env và --msg-filter: Tôi đã xem xét để lại các tệp tạm thời sau khi bạn đề xuất, nhưng nhận ra rằng nó sẽ không hoạt động theo thứ tự tôi muốn. –