2013-03-21 30 views
6

Tôi có tệp có chứa thông tin cấu hình nhạy cảm. Tôi di chuyển thông tin cấu hình đó ra một tệp khác không nằm trong kiểm soát phiên bản. Tôi muốn giữ cho các tập tin khác dưới sự kiểm soát phiên bản, nhưng tôi muốn loại bỏ lịch sử của nó bởi vì người ta có thể dễ dàng duyệt nguồn trên github và tìm các thông tin nhạy cảm trong các cam kết trước đó. Cách tốt nhất để làm điều này là gì? Tôi chỉ thấy cách tự xóa tệp khỏi kiểm soát phiên bản và xóa lịch sử của nó.xóa dữ liệu nhạy cảm nhưng không phải tệp từ lịch sử git

Một chút mới đối với git, vì vậy hãy tha thứ cho newbieness.

+2

Câu hỏi rất phổ biến: http://stackoverflow.com/q/872565/1286639 – GoZoner

+0

Github có [bài đăng] (https://help.github.com/articles/remove-sensitive-data) để thực hiện việc này . Kiểm tra nó ra. –

Trả lời

3

Bạn có thể muốn nhìn vào bài viết này https://help.github.com/articles/remove-sensitive-data

Khá nhiều nói lệnh này

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch Rakefile' \ 
    --prune-empty --tag-name-filter cat -- --all 

sẽ loại bỏ lịch sử của Rakefile từ git. Tuy nhiên, họ tiếp tục và thêm tệp đó vào gitignore của họ. Bạn có lẽ nên bỏ qua phần đó vì bạn muốn giữ tập tin trong điều khiển phiên bản.

+1

Một lời giải thích về những gì thực sự sẽ là tuyệt vời. – user3467349

+1

Bài viết được liên kết giải thích cách xóa tệp. Tiêu đề câu hỏi của OP cho biết không xóa tệp. –

+0

@TylerCollier nếu bạn đọc câu trả lời của tôi, tiểu bang không thêm tệp vào 'gitignore' vì điều đó sẽ khiến nó mất kiểm soát phiên bản. Thao tác này sẽ xóa tệp khỏi lịch sử, do đó cho phép xóa dữ liệu nhạy cảm. –

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