Nếu tôi đẩy một cam kết ban đầu xấu (hoặc nhiều hơn một) đến một kho lưu trữ từ xa và muốn chỉ xóa/hủy nó - tôi có thể làm điều đó bằng lệnh không?Git kho lưu trữ từ xa rõ ràng
Điều quan trọng là phải xóa hoàn toàn khỏi máy chủ để không sử dụng dung lượng đĩa.
E.G. Hôm nay tôi đã đẩy toàn bộ dự án Visual Studio với các dll, sdfs và vv. Thứ nhất, các tệp này khá lớn, thứ hai là một số trong số chúng được sửa đổi bởi VS của các nhà phát triển khác và không thể hợp nhất được. Điều này làm cho tôi google một chút và tôi phát hiện ra những tập tin này nên được bỏ qua. Nhưng cam kết đầu tiên đã cắt kho của tôi. Tôi muốn loại bỏ điều này và giải phóng không gian đĩa.
Có thể xóa git repo và thêm lại thông qua trang web của máy chủ (assembla), nhưng điều này nghe có vẻ không giống với giải pháp .. Có cách nào chuyên nghiệp hơn không?
UPDATE:
Tôi cố gắng gợi ý từ câu trả lời dưới đây nhưng nó đã không làm việc: 'git push -f' 'git push --force' 'git push gốc -f' 'git đẩy nguồn gốc --force' dẫn:
$ git push --force
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (19/19), 6.85 KiB, done.
Total 19 (delta 3), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull fir
)
To [email protected]:xxxxx.git
! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:xxxxx.git'
+1, nhưng 1) đảm bảo thu gom rác đang chạy thường xuyên, vì các đối tượng mồ côi sẽ không được dọn sạch cho đến khi chúng đủ điều kiện và 2) đảm bảo mọi người đều biết bạn đang viết lại lịch sử. –
Nếu bạn có thể, hãy xóa một nhánh chủ từ xa 'git push origin: master'. Một số cấu hình kho lưu trữ từ xa sẽ không cho phép điều này. – basicxman
Chính xác bạn có ý nghĩa gì khi 'xóa repo'? Có một lệnh đặc biệt cho điều đó, hoặc bạn chỉ có nghĩa là để làm điều này thông qua trang web assembla? – gisek