Ich habe das Repo unter https://github.com/railstutorial/sample_app_rails_4 geklont und viele Änderungen daran vorgenommen (ich habe es als Ausgangspunkt für meine eigene App verwendet), und jetzt möchte ich die geänderte App auf a verschieben Repo auf meinem eigenen Github-Konto.
Wie kann ich ändern, mit welchem Github-Repo es verknüpft ist?
Antworten:
Wie Deefour sagt, ist Ihre Situation nicht viel anders als die unter Ändern des URI (URL) für ein entferntes Git-Repository . Wenn Sie
clone
ein Repository haben, wird es als einesremote
von Ihnen unter dem Namen hinzugefügtorigin
. Was Sie jetzt tun müssen (da Sie die alte Quelle nicht mehr verwenden), ist dieorigin
URL der Änderung :Wenn das ursprüngliche Repository häufig aktualisiert wird und Sie diese Aktualisierungen von Zeit zu Zeit erhalten möchten, sollten Sie anstelle der Bearbeitung
origin
ein neues hinzufügenremote
:Oder vielleicht sogar den alten anrufen
upstream
:Wann immer Sie Änderungen erhalten möchten
upstream
, können Sie Folgendes tun:Da dies die Quelle ein Beispiel-Repository ist (scheint eine Art Vorlage zu sein, um anzufangen), glaube ich nicht, dass es notwendig ist, sie zu behalten oder überhaupt zu teilen - ich werde hier mit der ersten Alternative fortfahren.
quelle
GitHub:
git clone
Das Repository eines anderen undgit push
Ihr eigenes RepositoryIch werde das Repository eines anderen als das andere Repository bezeichnen .
Erstellen Sie ein neues Repository auf github.com . (Dies ist Ihr Repository )
Klonen Sie das andere Repository auf Ihren lokalen Computer. (falls Sie dies noch nicht getan haben)
git clone https://github.com/other-account/other-repository.git
Benennen Sie den aktuellen " Ursprung " des lokalen Repositorys in " Upstream " um.
git remote rename origin upstream
Geben Sie dem lokalen Repository einen " Ursprung ", der auf Ihr Repository verweist .
git remote add origin https://github.com/your-account/your-repository.git
Schieben Sie das lokale Repository in Ihr Repository auf Github.
git push origin master
Jetzt zeigt ' origin ' auf Ihr Repository und ' upstream ' auf das andere Repository .
git checkout -b my-feature-branch
.git commit
wie gewohnt in Ihr Repository .git pull upstream master
diese Option , um Änderungen aus dem anderen Repository in Ihren Hauptzweig zu übernehmen.quelle
git push origin master
ich versuche zu bekommen:... Compressing objects: 100% (1093/1093), done. Writing objects: 100% (4185/4185), 504.89 KiB | 126.22 MiB/s, done. Total 4185 (delta 3049), reused 4185 (delta 3049) remote: Resolving deltas: 100% (3049/3049), done. remote: pre-receive.sh: execution exceeded 5s timeout To https://github.com/your-account/your-repository.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://github.com/your-account/your-repository.git'
Git löschen und neu starten.
Ihr Zweck ist wahrscheinlich, dieses Repo auf Ihr zu setzen und es zu Ihrem zu machen.
Die Idee ist, das zu löschen
.git/
und neu zu initialisieren.rm -rf .git
quelle
.git
Verzeichnis überhaupt erst entfernen ? Willstgit init
du es sowieso nicht auslöschen?Sie können dies tun, indem Sie eine neue Fernbedienung aus Ihrem lokalen Repository erstellen (über die Befehlszeile).
dann können Sie anrufen:
Um die standardmäßig eingerichtete "Ursprungs" -Fernbedienung zu ersetzen, können Sie Folgendes ausführen:
quelle
Ich denke, dass der "höflichste Weg" dazu wäre:
git checkout -b <your_branch_name>
(falls du das vorher nicht getan hast)git remote add github <your_repository_ssh_url>
git push github <your_branch_name>
Auf diese Weise erhalten Sie ein Repo, das mit dem ursprünglichen Repo verknüpft ist, wobei Ihre Änderungen in einem separaten Zweig festgeschrieben werden. Dieser Weg ist einfacher, wenn Sie eine Pull-Anfrage an das ursprüngliche Repo senden möchten.
quelle
github
in dieser Anleitung das Bit normalerweise als bezeichnet wirdorigin
. Ansonsten unkompliziert und einfach.Von Git genommen schieben Sie alles auf einen neuen Ursprung
Grundsätzlich müssen Sie Ihrem Ordner ein neues Repo zuordnen
quelle
origin
ist bereits vorhanden - man mussrm
,rename
oderset-url
es.Ich hatte eine ähnliche Situation, aber in meinem Fall musste ich nur, wie vorgeschlagen, aber mit https wie folgt :
$ git remote set-url origin https://github.com/YOU/YOUR_REPO
quelle
Kopieren Sie nach dem Klonen die Dateien aus ihrem Ordner in einen neuen und beginnen Sie erneut mit git init.
Ich hatte ein ähnliches Problem: Ich musste das Ordnerverzeichnis ändern, bevor ich die Änderungen an meinem Repo vornehmen konnte.
oder Sie können den aktuellen Repository-Ursprung mit dem Befehl git remote remove origin entfernen.
quelle