Tôi đang tự hỏi làm thế nào để kéo một repo với tất cả các cam kết chưa được gc'd, nếu điều đó là có thể ..
nó giống như:
$ git clone x
$ cd x
$ git fetch origin -f
? hay cái gì khác?
Tôi đang tự hỏi làm thế nào để kéo một repo với tất cả các cam kết chưa được gc'd, nếu điều đó là có thể ..
nó giống như:
$ git clone x
$ cd x
$ git fetch origin -f
? hay cái gì khác?
Câu trả lời:
Không có lệnh nào tôi biết rằng "hạ tất cả các đối tượng cam kết trong kho lưu trữ từ xa, ngay cả những đối tượng không được ước tính".
Bạn chỉ có thể mang lại các cam kết với một tham chiếu trong kho lưu trữ từ xa. Bạn có thể làm điều này với lệnh:
git fetch [remote] [remoteBranch]:[localBranch]
Kho lưu trữ từ xa sẽ cần tạo một tham chiếu đến bất kỳ cam kết lơ lửng nào trước khi bạn có thể tìm nạp chúng. Nếu bạn có quyền truy cập vào kho lưu trữ từ xa, bạn có thể thực hiện việc này bằng một lệnh như:
git fsck --lost-found
Đầu ra sẽ cho bạn thấy bất kỳ cam kết lơ lửng. Cung cấp cho họ một tài liệu tham khảo với git branch [branchname] [commit sha1]
, sau đó bạn có thể lấy chúng.