Tôi bắt đầu với ý tưởng của @ user292677 và tinh chỉnh nó để giải quyết vấn đề của mình:
- Tạo repo mới trong github.
- cd vào bản sao cục bộ của repo cũ mà bạn muốn trích xuất, được thiết lập để theo dõi nhánh dự án mới sẽ trở thành chủ nhân của repo mới .
$ git push https://github.com/accountname/new-repo.git +new-project:master
Repo Github mới đã hoàn thành. Kết quả là;
- kho lưu trữ Github mới có tên new-repo ,
- có
master
tương ứng với dự án mới của repo cũ , với
- Tất cả lịch sử được bảo tồn.
Trên thực tế, tôi thấy rằng bằng cách sử dụng phương pháp này, tôi có thể tạo repo mới với lựa chọn các nhánh được chọn bằng tay, được đổi tên theo ý muốn:
$ git push git@github.com:accountname/new_repo +new-project:master +site3a:rails3
Kết quả là chi nhánh site3a đã tồn tại trước đó cũng được chuyển sang repo mới và sẽ xuất hiện dưới dạng rails3 . Điều này hoạt động thực sự tốt: sơ đồ mạng cho thấy chủ và rails3 mới với lịch sử đầy đủ và trong mối quan hệ chính xác của chúng với nhau.
Cập nhật 2013-12-07: Được sử dụng với dự án khác và xác minh rằng công thức này vẫn hoạt động.
Cập nhật 2018-01-11: Cập nhật bước 3. để sử dụng đề xuất GitHub cho giao thức https. Công thức vẫn hoạt động.