Nadat Microsoft GitHub had overgenomen, zochten veel ontwikkelaars naar alternatieven om hun code te hosten. Microsoft (en vele andere gigantische bedrijven) heeft de gewoonte om een ​​bewezen technologie / sites / producten aan te schaffen om het bereik te vergroten. Skype is een voorbeeld en nu is Github dat ook.

Het nieuws over de overname van GitHub was echter een koude douche voor de gemeenschap. Hoewel ik GitHub nooit leuk vond en het als een bruikbaarheidramp beschouwde, was het de go-to-bestemming voor het hosten van een enorme hoeveelheid open source-projecten. Monopolie is zelden gezond en het (belemmerende) einde van GitHub bewijst het helemaal opnieuw.

Gelukkig zijn er veel andere versiecontrolesystemen waaruit je kunt kiezen. Niet alle hebben alle functionaliteit van GitHub, maar afhankelijk van waar je ze voor nodig hebt, zijn de keuzes redelijk goed. Als u een van die ontwikkelaars bent die van GitHub willen overschakelen, zullen we hier een aantal alternatieven noemen - ze worden allemaal door uzelf gehost omdat u iemand anders met uw kostbare code niet wilt vertrouwen, toch?

1. GitLab

Zelfs voordat GitHub de verkeerde handen in ging, was GitLab een vrij populair alternatief. Nu verwacht ik dat het veel meer aandacht zal trekken. GitLab is open source en de kerneditie is gratis. Er zijn ook betaalde versies; ze beginnen bij $ 4 per gebruiker per maand. Het is een complete DevOps lifecycle-tool met functionaliteit voor planning, testen, verpakken en vrijgeven. Het wordt ook geleverd met een wiki en probleemopsporingsfuncties. U kunt GitLab intern of in de cloud implementeren.

2. Gogs

Als pijnloze installatie uw grootste zorg is, dan is er niets beters voor u dan Gogs. Het wordt geleverd met kant-en-klare binaries voor Windows, Linux, Mac en Raspberry Pi, maar u kunt Go ook gebruiken om het te installeren op elk ander platform waarop Go wordt uitgevoerd. Gogs is lichtgewicht en snel, en hoewel het niet alle kenmerken van grote dure pakken heeft, wordt het geleverd met een wiki, bug-tracking, versiebeheer, etc.

3. Trac

Trac is een goede keuze als je op zoek bent naar een minimalistisch GitHub-alternatief. In wezen is Trac een verbeterd wiki en probleemoplossingssysteem voor softwareontwikkelingsprojecten. Voor versiebeheer gebruikt het Git en Subversion, maar het kan ook met een tiental andere werken (bijv. Mercurial, Perforce, etc.). Met zijn goede rapportagemogelijkheden is Trac een goede keuze als u regelmatig en nauwkeurig de voortgang van projecten moet volgen.

4. GitBucket

GitBucket is een GitHub-kloon geschreven in Scala. Het heeft niet zoveel functies als de andere apps in de lijst. Het grootste voordeel is eigenlijk de gelijkenis met GitHub. Met andere woorden, als je GitHub mist, kun je altijd een beroep doen op GitBucket. De functies omvatten repository viewer, tracking van problemen, pull-aanvragen en een wiki. U kunt de functionaliteit uitbreiden met behulp van plug-ins, maar verwacht niet te veel van hen.

5. Mercurial

In tegenstelling tot de andere software op deze lijst, is Mercurial compleet anders dan GitHub omdat het de Git-server niet gebruikt, hoewel je je Mercurial-gegevens kunt omzetten in Git-objecten. Mercurial is niet het enige niet-git-serveralternatief van GitHub - er zijn veel andere versiecontrolesystemen, zoals Perforce, Subversion, etc., die je kunt gebruiken om je broncode te beheren.

Ik heb Mercurial meegeleverd omdat het goed en cross-platform is en wordt geleverd met een heleboel extensies. Bovendien zeggen veel van mijn vrienden, die zowel GitHub als Mercurial hebben gebruikt, dat Mercurial veel gemakkelijker te gebruiken is. Ik hou ook van de gedistribueerde architectuur. Wat functies betreft, is de kerninstallatie niet erg, maar er zijn uitbreidingen voor bijna alles wat denkbaar is.

Met of zonder GitHub gaat het leven verder. Treur niet te veel over GitHub - het zou een goede zaak kunnen zijn dat het nu eigendom is van Microsoft. Dit zal de groei van alternatieven stimuleren, en ik geloof dat sommigen van hen beter zullen worden dan de GitHub die we vandaag kennen.