2012-09-07 35 views
5

Tôi có kho lưu trữ git trống từ xa.Làm thế nào để xóa các tập tin từ kho git bare remote?

Một nhà phát triển mới đã nhân bản nó, nhưng anh ta không có tệp .gitignore được định cấu hình đúng cách, vì vậy anh ấy đã đẩy nhầm một số tệp không mong muốn vào điều khiển từ xa. Khi tôi kéo các thay đổi và sáp nhập, tôi đã nhận được các tập tin trước đó không được theo dõi. Những người khác cũng đã kéo những thay đổi từ xa và có những tập tin không mong muốn là tốt.

Làm cách nào để xóa các tệp này khỏi kho lưu trữ từ xa và từ xa/nguồn gốc/chi nhánh của người khác?

Trả lời

2

Đây là quy trình gồm ba bước:

  1. Di chuyển các tập tin từ bản sao của kho (hoặc với git rm hoặc bằng totally purging these files from your history tùy thuộc vào tầm quan trọng của nó là những tập tin này không bao giờ có trong kho ở nơi đầu tiên)
  2. Đẩy thay đổi của bạn trở lại kho từ xa sử dụng git push --force.
  3. Cho mọi người biết rằng họ có thể kéo lại kho lưu trữ - điều này sẽ yêu cầu git rebase công việc của họ trên lần cuối cùng biết tốt cam kết.

Bước cuối cùng bạn cũng có thể muốn thêm tệp .gitignore vào kho lưu trữ để khi kho lưu trữ được sao chép tất cả các tệp phù hợp bị bỏ qua.

7

Xem github có một câu hỏi thường gặp về vấn đề này: https://help.github.com/articles/remove-sensitive-data Sau đây là các bước sau:

  1. Viết lại cây từ địa phương cây (làm việc).

    $ git filter-branch --index lọc 'git rm --cached --ignore-unmatch Rakefile' \ --prune rỗng --tag-tên-lọc mèo - --Tất cả

  2. Buộc đẩy tới điều khiển từ xa.

    $ git push nguồn gốc chủ --force

  3. Mọi người kéo từ xa (và sử dụng --force nếu cần thiết)

Để ngăn chặn điều này xảy ra lần nữa, bạn nên kiểm tra .gitignore trong kho lưu trữ (và tùy chọn thiết lập móc trên máy chủ)

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