Kopieer/fork een git repo op github naar dezelfde organisatie

Ik heb een opslagplaats op github die een webtoepassing bevat die is geïmplementeerd in twee verschillende domeinen. De applicatie heeft hier en daar kleine logische vorken om zich anders te gedragen, afhankelijk van het domein waarop het is geïmplementeerd.

Het is zover gekomen dat ik het in twee afzonderlijke repo’s wil splitsen, één voor elk domein.

Github laat me het niet in dezelfde organisatie verdelen. Zoeken naar “git duplicate repo” suggereert dat ik kloon en mirror push het zou moeten doen, maar dat lijkt te zijn om beide repo’s synchroon te houden, wat ik niet wil doen.

Wat is de beste manier om dit aan te pakken? Ik wil graag de oude commit-geschiedenis behouden in de nieuwe kopie, indien mogelijk.


Antwoord 1, autoriteit 100%

Maak gewoon een nieuwe repository en push ernaar vanuit je werkkopie:

git clone [email protected]:me/myrepo-original
cd myrepo-original
git remote set-url origin [email protected]:me/myrepo-new
git push origin master

Je hebt nu een nieuwe repository, myrepo-new, die identiek is aan myrepo-original.


Antwoord 2, autoriteit 16%

Als u de fork-relatie niet nodig hebt (u wilt bijvoorbeeld een soort ontkoppelde alternatieve repo om welke reden dan ook), dan is het prima om de repo te dupliceren zoals beschreven door uw Google-vondsten en het antwoord van larsks.

Als je er weleen fork van wilt maken, neem dan contact op met Github-ondersteuning ([email protected] of https://github.com/support), en zij zullen een fork voor je maken in dezelfde organisatie. (Ze zijn hier ook niet kieskeurig in, je hoeft alleen een alternatieve naam voor de repo op te geven, aangezien repo-namen binnen een account uniek moeten zijn.)


Update: gebruiker Steve Rice meldt in de opmerkingen hieronder dat GitHub-ondersteuning heeft aangegeven dat ondersteuning momenteel geen tweede fork in uw account zou opzetten.

GitHub heeft onlangs een artikel gepost over mogelijke alternatieven voor het foren van een repo naar hetzelfde account. Je kunt dat artikel lezen hier.


Antwoord 3, autoriteit 14%

Gebruik Github’s Import Repositoryoptie op de +menu bovenaan de paginaof gewoon openen

https://github.com/new/import

Hiermee wordt een nieuwe repository gemaakt met de exacte inhoud van de gekopieerde repository. Het nadeel (hetzelfde als voor git commando’s antwoord door Iarsks) is dat het niet telt als een fork voor Github.


Antwoord 4, autoriteit 4%

Een andere manier zou zijn om de originele repo, om te kopiëren, toe te voegen als afstandsbediening voor onze huidige repo.

#create a new repo in the org1 organization called myrepo-new

Voer in uw lokale terminal uit:

git clone [email protected]:org1/myrepo-new
cd myrepo-new
git remote -v #shows current repo link on github as origin
git remote add name-for-remote https://github.com/org1/repo-old
git remote -v #shows repo-old as name-for-remote
git fetch  name-for-remote
git merge name-for-remote/branch-to-get-from-remote
#Now fix any conflicts if present
#If number of files/commits is very high, the desktop client may hang when you try to commit your changes after merge. Try switching to Git Shell if this happens.
git status 
git commit -m "commit message"
git push origin master

Antwoord 5, autoriteit 3%

Ik weet dat dit een super oud draadje is, maar ik kwam het tegen op zoek naar het antwoord en vond vervolgens een betere manier:

Maak van de repo die u wilt kopiëren een sjabloonrepo. Het is een selectievakje bovenaan de repository-instellingen. Nadat je dit hebt gedaan, staat er een grote groene knop met het label “Gebruik deze sjabloon” bovenaan de repo naast de knop Code. Klik daarop en het zal een kopie maken van de repo in welk account je maar wilt.


Antwoord 6, autoriteit 2%

Alternatieve oplossing:

Maak een nieuwe organisatie aan en fork deze daar.
Als de opslagplaats privé is, blijft deze ook privé in de nieuwe organisatie.
Vervolgens kun je externe ontwikkelaars of wie je maar wilt toegang geven tot de gevorkte repo en zij kunnen PR’s terugbrengen naar de oorspronkelijke repo.


Antwoord 7

U kunt de eerste opslagplaats markeren als een sjabloon (in de instellingen) en die sjabloonopslagplaats vervolgens “Gebruiken” wanneer u een nieuwe opslagplaats aanmaakt. Het is niet echt een vork, maar functioneel equivalent in sommige opzichten.

Other episodes