Câu hỏi cơ bản: Làm thế nào để tôi tách liên kết một git repo khỏi nguồn gốc mà nó được nhân bản?
git branch -a
trình diễn:
* master
remotes/origin/HEAD -> origin/master
và tôi muốn loại bỏ tất cả kiến thức về nguồn gốc và các sửa đổi liên quan.
Câu hỏi dài hơn: Tôi muốn có một repo lật đổ hiện có và tạo ra một số repo git nhỏ hơn từ nó. Mỗi repos git mới nên có toàn bộ lịch sử của chi nhánh liên quan. Tôi có thể cắt bớt repo thành cây con mong muốn bằng cách sử dụng:
git filter-branch --subdirectory-filter path/to/subtree HEAD
nhưng repo kết quả vẫn chứa tất cả các bản sửa đổi của các cây con đã bị loại bỏ dưới nhánh gốc / nhánh chính.
Tôi nhận ra rằng tôi có thể sử dụng cờ -T để git-svn để sao chép cây con có liên quan của repo lật đổ ở vị trí đầu tiên. Tôi không chắc liệu điều đó có hiệu quả hơn sau này khi chạy nhiều git filter-branch --subdirectory-filter
bản sao của các bản sao của git repo hay không, nhưng trong mọi trường hợp, tôi vẫn muốn phá vỡ liên kết với nguồn gốc.
--prune-empty
mà tôi đã mất tích.