Ich habe etwas Dummes getan …
- ich Gabeled ein Repo auf GitHub.
- Ich habe einige Änderungen vorgenommen, begehented sie auf meiner Gabel.
- Ich habe diesen Commit als Pull-Anfrage zurück zum ursprünglichen Repo.
- Hier kommt der dumme Teil: I löschend meine Gabel.
Der Eigentümer des ursprünglichen Repos forderte ein paar Änderungen in meinem Code an, bevor er die Pull-Anfrage annehmen konnte, was ich gerne tun würde.
Ich habe versucht, das Repo neu zu forken, aber ich kann den Commit nicht aus der Pull-Anfrage auschecken, er ist nicht einmal als vorhanden „nicht verknüpfter“ Commit (ein Commit, der nicht Teil eines Zweigs oder Tags ist, ich kenne die offizielle Terminologie nicht).
Meine Frage ist: Wie kann ich das Commit wiederherstellen als Pull-Request gesendet?
Wenn es keine Möglichkeit gibt, ist es eine Option, die Änderungen in einem neuen Commit erneut vorzunehmen, aber die Pull-Anforderung würde verloren gehen. Bei meiner Frage geht es nicht darum, die Änderungen aus dem Commit nicht zu verlieren, sondern darum, die Änderungen nicht zu verlieren git-Geschichtewas bedeutet, dass die Commits beibehalten werden SHA1 (und alles andere, was mir vielleicht nicht bewusst ist).
Es ist möglich zu fetch
Pull-Anforderungen auf Ihren lokalen Computer.
Ohne einen Link zu der betreffenden Pull-Anforderung zu haben, ist es schwierig zu testen, ob dies funktioniert, aber Sie können es versuchen
- Erstellen Sie einen neuen Fork des Repositorys,
- Klonen Sie Ihre neue Gabel,
-
fetch
Ihre Pull-Anforderung aus dem Upstream-Repository,
git remote add upstream https://github.com/User/repository.git
$EDITOR .git/config
# Add `fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*` to
# the relevant section, as outlined in the linked page. Note that
# we use `upstream` instead of `origin` as the target.
git fetch upstream
-
merge
die Pull-Anforderung in Ihr lokales Repository, z
git checkout master
git merge --ff-only upstream/pr/1
-
und dann push
es zurück zu Ihrer neuen Gabel.
Wenn dies fehlschlägt, können Sie eine Supportanfrage an GitHub senden und sie bitten, Ihr Repository wiederherzustellen. Von einem FAQ zum Thema Sicherheit:
Wir entfernen Repositorys nicht rückwirkend aus Backups, wenn sie vom Benutzer gelöscht wurden, da wir das Repository möglicherweise für den Benutzer wiederherstellen müssen, wenn es versehentlich entfernt wurde.
Um diesen Prozess einzuleiten, wenden Sie sich an das Support-Team so bald wie möglich.
Haben Sie die Änderungen also direkt auf der Website vorgenommen, ohne irgendetwas in Git zu klonen? Wenn Sie Ihren Fork geklont haben, haben Sie den Klon bereits auf Ihrem Computer gelöscht?
– Ajedi32
7. Januar 2014 um 18:26 Uhr
Ich habe es auf meinem Computer geklont, aber ich habe es auch gelöscht.
– 1Ass
7. Januar 2014 um 22:22 Uhr