2012-09-09 28 views
5

Tôi hiện đang có kho lưu trữ git cá nhân cho một số phần mềm mà tôi đang thực hiện. Kho lưu trữ được sử dụng để chứa thông tin cá nhân của người khác trong một số tệp cấu hình mà tôi có trong git vì chúng hữu ích khi theo dõi và giúp tài liệu cách tệp cấu hình hoạt động. Các repo git cũng cho thấy cách tập tin cấu hình đã thay đổi theo thời gian, trong điều khoản của phiên bản yêu cầu những gì. Gần đây tôi đã có mong muốn xuất bản dự án lên github, vì vậy tôi đã tạo một chi nhánh và xóa thông tin cá nhân khỏi đầu, thay thế từng mục bằng trình giữ chỗ.Làm cách nào để "Kiểm duyệt" lịch sử của kho lưu trữ git?

Ngoài việc quay lại từng sửa đổi và "lịch sử thay đổi", có cách nào để tôi "kiểm duyệt" thông tin cũ trong mọi trường hợp (thay đổi tất cả cùng một lúc) bằng cách thay thế nó bằng thông tin mới trong tất cả sự cố xảy ra, vì vậy nếu ai đó cuộn lại, họ sẽ thấy trình giữ chỗ thay vì thông tin cá nhân?

+0

Xóa thư mục '.git' (tất cả lịch sử) và bắt đầu với các tệp an toàn hiện tại bạn có? http://stackoverflow.com/q/9683279/139010 –

+0

"Các repo git cũng cho thấy cách tập tin cấu hình đã thay đổi theo thời gian, trong điều khoản của phiên bản yêu cầu những gì." Điều này có nghĩa là tôi muốn duy trì lịch sử * một số *, vì tôi thấy nó hữu ích cho sự phát triển trong tương lai, nhưng phần lớn nó không liên quan và tiết lộ thông tin nhận dạng. – DavidJFelix

Trả lời

6

Bạn có thể chạy nhánh lọc git trên đó, nó sẽ sửa đổi lịch sử của chi nhánh và xóa nội dung bạn muốn. Sau đó, bạn chỉ có thể thêm một ví dụ (giữ chỗ) tập tin ở vị trí của nó. Hãy xem github's remove-sensitive-data help page

+0

Điều này có đơn giản là lọc tệp cấu hình hoặc lọc các dòng sửa đổi theo dòng không? Nói trong bản sửa đổi đầu tiên, tệp cấu hình cho biết "John Doe" nhưng trong bản sửa đổi thứ hai, nó có nội dung "Tên: John Doe". Tôi có thể lọc nó để tập tin cấu hình đầu tiên nói "[Tên]" và cái thứ hai nói "Tên: [Tên]"? Tôi muốn bảo tồn lịch sử của các chỉnh sửa mà không giữ thông tin mà tôi nghĩ là không liên quan và không cần thiết để chia sẻ. – DavidJFelix

+0

@DavidJFelix filter-branch có thể làm * mọi thứ * với nội dung bằng bộ lọc -tree-filter nhưng bạn sẽ phải viết kịch bản hoặc chương trình của riêng bạn để thực sự thực hiện các sửa đổi bạn muốn cho mỗi bản sửa đổi. – wjl

+0

@wjl Được rồi. Điều đó có vẻ hợp lý. Với điều đó, tôi sẽ đánh dấu điều này là được chấp nhận. Tôi có thể xử lý phần còn lại. – DavidJFelix

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