it-swarm.com.de

Wie kann ich meine Gabel synchron halten, ohne eine separate Fernbedienung hinzuzufügen?

Nehmen wir an, es gibt ein Repository someone/foobar auf GitHub, das ich mit me/foobar verknüpft habe.

Wie kann ich neue Commits aus dem übergeordneten Repository direkt auf meine Gabel ziehen, ohne eine separate Fernbedienung hinzufügenund daran denken, regelmäßig von dort zu ziehen?

Das Ziel ist es:

  • git pull zum Abrufen aus dem übergeordneten Repository
  • git Push, um alles an meine Gabel zu senden
182
1ace
git remote set-url Origin [email protected]:someone/foobar
git remote set-url Origin --Push [email protected]:me/foobar

Es gibt jedoch eine Einschränkung:
Dies ist perfekt, wenn Sie der Einzige sind, der Änderungen an Ihrer Gabel vornimmt.
Wenn es jedoch mit anderen Personen geteilt wird, müssen Sie möglicherweise von Ihrer Gabel abziehen. In diesem Fall ist eine separate Fernbedienung die einzige Lösung.

Bearbeiten:
Eigentlich Sie cangit pull [email protected]:me/foobar, der die Einschränkung beseitigt.
Die Entscheidung liegt bei Ihnen, an welche Sie sich leichter erinnern können.

21
1ace

Öffnen Sie das gegabelte Git-Repository me/foobar .

Klicken Sie auf Compare:

Here is a sample image of the page

Sie erhalten die Benachrichtigung:

Es gibt nichts zu vergleichen.
jemand: Master ist mit allen Commits von me: Master auf dem neuesten Stand. Versuchen Sie wechseln Sie die Basis für Ihren Vergleich.

Klicken Sie auf dieser Seite auf Wechseln der Basis:

Here is an example on the page

Dann sehen Sie alle Commits, die an jemand/foobar nach dem Tag, an dem Sie es abgelegt haben, gemacht wurden.

Klicken Sie auf Pullanfrage erstellen:

Here is a sample page

Geben Sie der Pull-Anfrage einen Titel und möglicherweise eine Beschreibung und klicken Sie auf Pull-Anfrage erstellen.

Blättern Sie auf der nächsten Seite bis zum Ende der Seite und klicken Sie auf Pull-Anforderung zusammenfügen und Zusammenführung bestätigen.

Ihr Git-Repository me/foobar wird aktualisiert.

Ich habe eine ziemlich einfache Methode verwendet, die GitHub Web UI verwendet, um das zu tun:

  1. Öffnen Sie das ursprüngliche Git-Repository (nicht das gegabelte Git-Repository me/foobar).
  2. Springen Sie zum Ordner src und öffnen Sie die Datei, die Sie ändern möchten
  3. Klicken Sie auf das Stiftsymbol. In Ihrem persönlichen Zweig wird automatisch ein Label mit dem Namen "patch-1" erstellt, das auf der aktuellen Version des Master-Repositorys basiert: Enter image description here
  4. Genießen!Enter image description here
7
Nadir

Eine weitere Option ist die Verwendung der Update from upstreamRepoName/master-Schaltfläche in GitHub für Mac (und ich nehme an, GitHub für Windows).

 Enter image description here

1
Steve Moser

Ich weiß nicht, wie es geht, ohne eine weitere Fernbedienung hinzuzufügen, aber ich füge immer das Repo hinzu, von dem ich gegabelt habe, als upstream-Fernbedienung, damit ich es einfach tun könnte:

git branch -a|grep remotes/upstream| while IFS="/" read p r b; do echo Syncing $r/$b to Origin/$b; git Push Origin $r/$b:refs/heads/$b; done

Dadurch werden alle Zweige synchronisiert. Neue erstellen (Entfernen Sie den refs/heads/, um nur vorhandene Zweige zu aktualisieren). Wenn einer Ihrer Zweige auseinandergegangen ist, wird ein Fehler für diesen Zweig ausgegeben.