Auf GitHub forken, Schritt für Schritt
Teil 5, Kapitel 3. Dieses Kapitel führt durch das Forken einer Erweiterung auf GitHub und die Verwendung Ihres Forks
in einer Entwicklungs-Website. Es setzt ein GitHub-Konto und Git auf Ihrem Rechner voraus
(Mit Git entwickeln behandelt Git selbst). Das Beispiel forkt
se7enxweb/expchangeclass; ersetzen Sie es durch das Repository, das Sie brauchen, und your-account durch Ihren
GitHub-Benutzer oder Ihre Organisation.
1. Auf GitHub forken
- Öffnen Sie die Seite des Repositorys, zum Beispiel https://github.com/se7enxweb/expchangeclass.
- Klicken Sie auf Fork (oben rechts).
- Wählen Sie Ihr Konto als Eigentümer. Behalten Sie den Namen des Repositorys.
- Lassen Sie „Copy the main branch only“ angehakt, sofern Sie keine anderen Branches brauchen.
- Klicken Sie auf Create fork.
Sie haben jetzt https://github.com/your-account/expchangeclass, mit der gesamten Historie des Originals und dem
Vermerk „forked from se7enxweb/expchangeclass“ unter seinem Namen. Dieser Vermerk ist Teil der Namensnennung: Lassen
Sie den Fork verbunden, „lösen“ Sie ihn nicht ab.
2. Ihren Fork klonen
git clone [email protected]:your-account/expchangeclass.git
cd expchangeclass
git remote add upstream https://github.com/se7enxweb/expchangeclass.git
git remote -vSie sollten zwei Remotes sehen: origin (Ihr Fork, auf den Sie pushen) und upstream (das Original, von dem Sie
holen).
3. Auf einem Branch arbeiten
Arbeiten Sie nie auf main Ihres Forks. Ein Branch je Änderung hält jeden Pull Request sauber:
git switch -c fix-menu-entry-csp
# edit files
git add design/admin/templates/popupmenu/classcontextmenu.tpl
git commit -m "Updated: The context menu entry carries no inline handler"
git push -u origin fix-menu-entry-cspBenennen Sie den Branch nach der Änderung, nicht nach sich selbst.
4. Ihren Fork in einer Entwicklungs-Website verwenden
Eine mit Composer installierte Website kann die Erweiterung statt von Packagist aus Ihrem Fork beziehen. In der
composer.json der Website:
{
"repositories": [
{ "type": "vcs", "url": "https://github.com/your-account/expchangeclass" }
],
"require": {
"se7enxweb/expchangeclass": "dev-fix-menu-entry-csp"
}
}Dann:
composer update se7enxweb/expchangeclassdev- plus der Name des Branches installiert diesen Branch. Composer liest den Paketnamen aus der composer.json des
Forks, die weiterhin se7enxweb/expchangeclass lautet, daher behält die Anforderung diesen Namen. Leeren Sie danach
die Caches und generieren Sie die Autoloads neu, wie bei jeder Änderung an einer Erweiterung.
Warnung Führen Sie
composer updatenicht auf einer Live-Website aus, um einen Fork zu testen. Verwenden Sie eine Entwicklungskopie. Ein Composer-Lauf kann auch Erweiterungen ersetzen, die Sie von Hand mit Git ausgecheckt haben; wissen Sie, wie Ihre Website installiert wurde, bevor Sie ihn ausführen.
Ohne Composer klonen Sie den Fork direkt nach extension/:
cd extension
git clone -b fix-menu-entry-csp [email protected]:your-account/expchangeclass.git expchangeclassDer Ordnername muss der Name der Erweiterung sein (expchangeclass), nicht der des Repositorys, falls sie sich
unterscheiden.
5. Wie es weitergeht
- Um Ihre Änderung an das Original zu schicken: Mit Pull Requests zurückgeben.
- Um Ihren Fork aktuell zu halten, während Sie warten: Einen Fork mit seiner Quelle synchron halten.
- Wenn der Fork zu einem dauerhaften mit eigenen Releases wird, ändern Sie den Paketnamen (
name) in seinercomposer.jsonin Ihren eigenen und registrieren Sie ihn auf Packagist (Composer und Packagist).
Was schiefgehen kann
| Problem | Ursache | Lösung |
|---|---|---|
Permission denied (publickey) beim Klonen | kein SSH-Schlüssel bei GitHub | die https-URL verwenden oder Ihren Schlüssel bei GitHub hinzufügen |
| Composer: „could not find a matching version“ | der Branch-Name in dev-... ist falsch, oder die composer.json des Forks hat einen anderen Namen | git branch -r und das Feld name prüfen |
| Ihre Änderung ist auf der Website nicht sichtbar | die Website verwendet noch das Original | composer show se7enxweb/expchangeclass zeigt die Quelle; die Caches leeren |
Verwandte Seiten
- Zurück: Wann Sie forken sollten und wann nicht
- Weiter: Einen Fork mit seiner Quelle synchron halten
- Mit Git entwickeln
- Fork a repository in der GitHub-Dokumentation (auf Englisch)
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.