Ich frage mich, wie ich ein Repo mit all den Commits ziehen kann, die nicht gc'd wurden, wenn das möglich ist.
ist es so etwas wie:
$ git clone x
$ cd x
$ git fetch origin -f
? oder etwas anderes?
Ich frage mich, wie ich ein Repo mit all den Commits ziehen kann, die nicht gc'd wurden, wenn das möglich ist.
ist es so etwas wie:
$ git clone x
$ cd x
$ git fetch origin -f
? oder etwas anderes?
Antworten:
Mir ist kein Befehl bekannt, der besagt, dass alle Festschreibungsobjekte im Remote-Repository heruntergefahren werden, auch diejenigen, auf die nicht verwiesen wird.
Sie können Commits nur mit einer Referenz in das Remote-Repository bringen. Sie können dies mit dem folgenden Befehl tun:
git fetch [remote] [remoteBranch]:[localBranch]
Das Remote-Repository muss einen Verweis auf alle baumelnden Commits erstellen, bevor Sie sie abrufen können. Wenn Sie Zugriff auf das Remote-Repository haben, können Sie dies mit einem Befehl wie dem folgenden tun:
git fsck --lost-found
Die Ausgabe zeigt Ihnen alle baumelnden Commits. Geben Sie ihnen eine Referenz mit git branch [branchname] [commit sha1]
, dann können Sie sie abrufen.