Xóa tất cả các tệp không loại bỏ lịch sử. Trước tiên, bạn cần tạo một nhánh không có lịch sử và thêm các tệp cấu hình của bạn. Những ngày git checkout
này có một --orphan
tùy chọn tạo ra một chi nhánh không có lịch sử. Đây là thông tin về --orphan
tùy chọn:
--orphan <new_branch>
Tạo một nhánh mồ côi mới, có tên là <new_branch>, bắt đầu từ <start_point> và chuyển sang nó. Cam kết đầu tiên được thực hiện trên nhánh mới này sẽ không có cha mẹ và nó sẽ là gốc của một lịch sử mới hoàn toàn bị ngắt kết nối với tất cả các nhánh và cam kết khác.
Chỉ mục và cây làm việc được điều chỉnh như thể bạn đã chạy "git checkout <start_point>" trước đó. Điều này cho phép bạn bắt đầu một lịch sử mới ghi lại một tập hợp các đường dẫn tương tự như <start_point> bằng cách dễ dàng chạy "git commit -a" để thực hiện root commit.
Điều này có thể hữu ích khi bạn muốn xuất bản cây từ một cam kết mà không để lộ toàn bộ lịch sử của nó. Bạn có thể muốn làm điều này để xuất bản một nhánh mã nguồn mở của một dự án có cây hiện tại là "sạch", nhưng lịch sử đầy đủ của nó chứa các bit mã độc quyền hoặc bị chặn.
Nếu bạn muốn bắt đầu lịch sử bị ngắt kết nối ghi lại một tập hợp các đường dẫn hoàn toàn khác với đường dẫn trong <start_point>, thì bạn nên xóa chỉ mục và cây làm việc ngay sau khi tạo nhánh mồ côi bằng cách chạy "git rm-rf. " từ cấp cao nhất của cây làm việc. Sau đó, bạn sẽ sẵn sàng chuẩn bị các tệp mới của mình, lưu trữ lại cây làm việc, bằng cách sao chép chúng từ nơi khác, giải nén tarball, v.v.
Đây là một liên kết đến tài liệu để thanh toán . Bạn cũng có thể chạy git help checkout
.
Khi bạn đã tạo chi nhánh của mình mà không có lịch sử, thì khi bạn đẩy nó lên máy chủ, nó cũng sẽ không có lịch sử đó. FWIW, nó giúp tôi nghĩ git push
là "làm cho chi nhánh từ xa trông giống như chi nhánh cục bộ của tôi". Vì vậy, nếu bạn có lịch sử, và thúc đẩy, nó sẽ có lịch sử. Nếu bạn không, thì nhánh được đẩy sẽ không.