Se vuoi configurare il controllo del codice sorgente per un progetto, ma preferisci non ospitarlo su un servizio come GitHub, può eseguire il tuo git
server su un VPS per archiviare il tuo codice e fungere da repository principale per qualsiasi contributore.
Perché eseguire il proprio server??
Con quanti host gratuiti git
fornitori lì, Che cosa GitHub, GitLab, e Bitbucket, non ha molto senso farlo da soli. Ma ci sono alcune situazioni in cui è una soluzione praticabile.
Primo, eseguire il proprio server è molto più privato, soprattutto se stai lavorando su codice che preferisci non memorizzare nel file “soprattutto se stai lavorando su codice che preferisci non memorizzare nel file” soprattutto se stai lavorando su codice che preferisci non memorizzare nel file. Questo non vuol dire che provider come GitLab non siano sicuri., ma ospitare tutto da soli può dare ad alcune persone più tranquillità.
Allo stesso tempo, se stai utilizzando un servizio di terze parti, ci sono restrizioni sulla dimensione del file che potrebbero non essere l'ideale. GitHub non supporta file più grandi di 100 MB, che può essere un grosso ostacolo per progetti con binari di grandi dimensioni. L'utilizzo del proprio server rimuove questo limite, supponendo che tu possa permetterti più spazio sul disco rigido.
Qualunque sia il tuo caso d'uso, Probabilmente posso fare di meglio degli barebone git
. Da GitLab Edizione comunitaria è gratuito e open source, ed è facile da configurare sul proprio server. Questo ti dà tutti i vantaggi di ospitarlo da solo insieme a un'interfaccia web molto bella e numerosi strumenti CI. / cd. Ti consigliamo vivamente di utilizzare GitLab se hai spazio libero sul server. (Bisogno in giro 3 GB di RAM). Puoi leggere la nostra guida per installarlo e configurarlo per maggiori informazioni.
Ma, se non vuoi tutte le campane e i fischietti, e vuoi solo eseguire un semplice git
a distanza, puoi continuare a leggere.
I telecomandi Git sono solo il repository di qualcun altro
La prima cosa a cui prestare attenzione git
è che ospitare un server non è davvero molto complicato. Git utilizza un modello di controllo del codice sorgente distribuito; il tuo clone locale di un repository non si connette affatto a tutti i tuoi colleghi, soprattutto se stai lavorando su codice che preferisci non memorizzare nel file “a distanza”, generalmente su un server o servizio centrale esterno. Quando spingi e tiri, apportare modifiche alla copia originale ufficiale del telecomando. Quando i tuoi colleghi cercano dal telecomando, scarica le loro conferme.
Tecnicamente puoi correre git
come un servizio assolutamente decentralizzato. Se tu avessi due persone, ciascuno riceverebbe aggiornamenti dall'altro. (Non è consigliabile inviare a repository non server in questa configurazione). Questo non è veramente utilizzabile in pratica, a meno che entrambe le parti non abbiano indirizzi IP statici e siano sempre online, ecco perché la maggior parte delle persone opta per il modello client-server.
Quindi, tutto quello git
Il server è quindi solo un normale repository configurato come copia principale ed è aperto a Internet. È sorprendentemente facile da configurare. Primo, dovremo creare un nuovo utente. Git utilizza SSH per l'autenticazione e tutto il traffico tra server e client, quindi avremo bisogno di un utente del servizio per gestire il repository.
sudo useradd git
Prossimo, passa a git
utente per il resto della configurazione:
vai in acqua
Dovrai aggiungere le tue chiavi SSH a git
Nome utente authorized_keys
procedimento:
nano ~/.ssh/authorized_keys
Questa è un'area in cui servizi come GitHub e GitLab hanno la riga di comando Git beat. La gestione degli accessi non è facilmente gestibile in questo modo, poiché devi dare a tutti l'accesso allo stesso utente del servizio, che non è l'ideale, oppure dovrai impostare utenti separati per ogni persona, che non è neanche. ideale. In entrambi i casi, Le conferme appariranno con qualsiasi nome utente ed e-mail che l'utente finale ha configurato nel suo git
impostazioni.
Comunque, per creare il repository vero e proprio, corri git init
a git
directory home dell'utente:
git init --bare repository.git
il --bare
L'opzione è necessaria qui. Generalmente, durante la clonazione di un repository, git
memorizza tutti i file che usi per gestire le versioni nel nascosto .git
file, e mantiene una versione utilizzabile ovunque il tuo HEAD non sia attualmente protetto. Questo generalmente rende la cartella del repository circa il doppio di quella che sarebbe senza git
, anche se potrebbe essere più grande se hai binari grandi e molte modifiche nel tempo.
Un semplice repository è semplicemente un repository senza le versioni utilizzabili dei file attualmente estratti. Anziché, la cartella del repository è solo il contenuto di quello che sarebbe il .git
file. Ciò consente di risparmiare spazio di archiviazione e configura il repository come server principale. Perché non c'è contenuto locale, non ci saranno conflitti con il ramo HEAD. È una convenzione denominare i repository nudi con il .git
estensione del file, ma non esplicitamente necessario.
Questo è tutto ciò che serve sul lato server. Dalla tua macchina locale, dovrai clonare il repository o aggiungere un nuovo telecomando:
git remote aggiungi origine [email protected]:repository.git
L'URL inizia con git@
perché si connette via SSH come il git
Nome utente. il :repository.git
alla fine è in realtà un nome di percorso, non solo un identificatore. Il percorso è relativo a git
directory home dell'utente, quindi se metti il repository da qualche altra parte, vorrai spostarlo qui o utilizzare il percorso completo.
Dopo aver connesso il tuo repository locale, dovrebbe avere pieno accesso per spingere e tirare come al solito. Tieni a mente, nonostante questo, rispetto all'impostazione predefinita git
non ha un sistema di autorizzazioni integrato, quindi non c'è nulla che impedisca a chiunque di accedere al git
che l'utente abbia il pieno controllo sul proprio repository principale.