397 Stimmen

Wie man einen entfernten Zweig aus einem anderen Repo zieht

Ich habe ein Projekt auf GitHub gehostet, das jemand geforkt hat. Auf ihrem Fork haben sie einen neuen Zweig "foo" erstellt und einige Änderungen vorgenommen. Wie ziehe ich ihre "foo" in einen neuen Zweig auch namens "foo" in meinem Repo?

Ich verstehe, dass sie einen Pull Request an mich richten können, aber ich möchte diesen Prozess selbst initiieren.

Nehmen Sie Folgendes an:

  1. Da sie mein Projekt geforkt haben, haben unsere beiden Repos die gleiche "Geschichte
  2. Obwohl GitHub anzeigt, dass ihr Projekt von meinem geforkt wurde, enthält mein lokales Repository keine Verweise auf das Projekt dieser Person. Muss ich ihr Projekt als Remote hinzufügen?
  3. Ich habe noch keinen Zweig mit dem Namen "foo" - ich weiß nicht, ob ich diesen erst manuell erstellen muss.
  4. Ich möchte auf jeden Fall, dass dies in einen separaten Zweig gezogen wird und nicht in meinen Master.

6voto

J Smith Punkte 177

Wenn das geforkte Repository geschützt ist, so dass Sie nicht direkt in das Repository pushen können, und Ihr Ziel ist es, Änderungen an deren foo vorzunehmen, dann müssen Sie deren Zweig foo so in Ihr Repository bringen:

git remote add protected_repo https://github.com/theirusername/their_repo.git
git fetch protected_repo 
git checkout --no-track protected_repo/foo

Jetzt haben Sie eine lokale Kopie von foo, der kein Upstream zugeordnet ist. Sie können Änderungen daran vornehmen (oder auch nicht) und dann Ihr foo in Ihr eigenes entferntes Repo pushen.

git push --set-upstream origin foo

Jetzt befindet sich foo in Ihrem Repo auf GitHub und Ihr lokales foo verfolgt es. Wenn sie weiterhin Änderungen an foo vornehmen, können Sie ihre Änderungen abrufen und in Ihr foo zusammenführen.

git checkout foo 
git fetch protected_repo
git merge protected_repo/foo

-1voto

raghava Punkte 24

Git fetch upstream pull/<pr_number>/head:<Ihr_local_branch_name>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X