Configura un server Git con msysgit su Windows

I miei amici e io stiamo provando a installare Git per Windows usando il tutorial Git Server: Gitosis e Cygwin su Windows , ma continuiamo a incontrare problemi.

Come sarebbe una guida “Setup Git Server” per Windows usando msysgit ?

C’è un commento nel tutorial sopra suggerendo che non può essere fatto con msysgit perché la gitosi richiede l’uso di un server SSH e Bash? Che cos’è una guida passo passo (in quanto non ce n’è una disponibile)?

  1. Installa mysisgit

  2. ?

Ho trovato questo post e ho appena pubblicato qualcosa sul mio blog che potrebbe aiutare.

Vedere Impostazione di un server Msysgit con copSSH su Windows . È lungo, ma sono riuscito a farlo funzionare su Windows 7 Ultimate x64.

Per quanto riguarda il riferimento alla pagina di Tim Davis – Configurazione di un server Msysgit con copSSH su Windows – Ho usato questo per ottenere un server Git in esecuzione su Windows 7 Home Premium 64.

Di seguito è riportato un postmortem / aggiornamento di ciò che ho imparato in aggiunta alle sue istruzioni.

Come ha detto Tim Davis, questo è stato un processo arduo e frustrante, almeno per me – non sono troppo bravo con l’integrazione di questo tipo, ma ho imparato molto nel processo. Spero che il mio dolore benefici a qualcun altro in futuro, perché questo è stato un processo arduo.

  1. C’è un passo per copiare tutti i file eseguibili di Git nella directory bin di CopSsh. Invece di copiare i file e capire quali sono i file necessari, aggiungi il percorso git bin al tuo percorso git. Ho fatto ciò modificando il mio profilo .bashrc e CopSsh.

    Ecco cosa ho aggiunto a .bashrc (nella tua home directory CopSsh e Windows):

    gitpath = ‘/ cygdrive / c / Programmi (x86) / Git / bin’

    gitcorepath = ‘cygdrive / c / Programmi (x86) / Git / libexec / git-core’

    PATH = $ {} gitpath: $ {} gitcorepath: $ {PATH}

    Ecco cosa ho aggiunto al profilo di bash (in CopSsh etc / profile):

    gitpath = ‘/ c / Programmi (x86) / Git / bin’

    gitcorepath = ‘cygdrive / c / Programmi (x86) / Git / libexec / git-core’

    export PATH = “/ bin: $ syspath: $ gitpath: $ gitcorepath: $ winpath”

    C’è qualche duplicazione qui – funziona per me, quindi qualcuno gong in cui è il posto giusto per modificare il percorso.

  2. Le versioni più recenti di msysgit potrebbero non darti lo schermo per scegliere l’eseguibile ssh in cui scegliere tra Git ssh e PuTTY ssh. Dovrai impostare GIT_SSH manualmente se usi PuTTY.

  3. Non ho seguito una parte delle istruzioni e ho installato Tortoise – Ho usato invece la riga di comando perché è così che preferisco imparare un vcs come ho fatto con rcs e Subversion e ho trovato che funziona per me. Ho avuto problemi con il comando clone usando ssh. Ecco come l’ho fatto:

    Git clone usando ssh – imansible trovare il repository

    Questo è il punto in cui ho sbattuto la testa di più.

  4. La directory di installazione di CopSsh era / Program Files (x86) / ICW. Sono riuscito a farcela, ma se lo facessi di nuovo, userei un nome di directory senza spazi.

  5. Queste altre fonti mi hanno aiutato a capire le cose:

    Un altro modo per configurare un server Git su Windows:

    http://code.google.com/p/tortoisegit/wiki/HOWTO_CentralServerWindowsXP

    Il lato client delle cose:

    http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository

    Una spiegazione di Git come server (non relativo a Windows, ma un aspetto più approfondito rispetto ai passaggi di installazione):

    http://progit.org/book/ch4-0.html

    Plus O’Reilly’s Version Control with Git – the Remote Repositories capitolo.

In retrospettiva, se avessi saputo quanto sarebbe stato dispendioso in termini di tempo, avrei potuto iniziare con Mercurial mentre leggo che l’installazione su Windows è più facile, ma avrò un’opinione su questo dopo aver lavorato con Git per un po ‘e poi provare Mercurial .

Bonobo Git Server per Windows

Dalla pagina Web di Bonobo Git Server :

Bonobo Git Server per Windows è un’applicazione Web che puoi installare su IIS e gestire e connettersi facilmente ai tuoi repository git.

Bonobo Git Server è un progetto open-source e puoi trovare l’ origine su github .

Caratteristiche:

  • Accesso sicuro e anonimo ai tuoi repository git
  • Interfaccia web user friendly per la gestione
  • Gestione dell’accesso al repository basato su utenti e team
  • Browser file di repository
  • Commit browser
  • Localizzazione

Brad Kingsley ha un bel tutorial per l’installazione e la configurazione di Bonobo Git Server.

GitStack

Git Stack è un’altra opzione. Ecco una descrizione dal loro sito web:

GitStack è un software che ti consente di configurare il tuo server Git privato per Windows. Ciò significa che si crea un sistema di controllo delle versioni all’avanguardia senza alcuna conoscenza Git precedente. GitStack lo rende anche estremamente facile da proteggere e mantenere il server aggiornato. GitStack è costruito sulla parte superiore del vero Git per Windows ed è compatibile con qualsiasi altro client Git. GitStack è completamente gratuito per piccole squadre 1 .

1 l’ edizione di base è gratuita per un massimo di 2 utenti

Non sono sicuro del motivo per cui qualcuno non abbia suggerito http://gitblit.com . Soluzione basata su java pura, consente il protocollo HTTP e semplicissima da configurare.

Dopo aver seguito la guida di Tim Davis e il follow-up di Steve, ecco cosa ho fatto:

PC server

  1. Installa CopSSH, msysgit.
  2. Quando si crea l’utente CopSSH, deselezionare Autenticazione password e verificare l’autenticazione con chiave pubblica in modo che le chiavi pubbliche / private funzionino.
  3. Crea chiavi pubbliche / private usando PuTTygen. inserisci entrambe le chiavi nella directory CopSSH / home / user / .ssh dell’utente.
  4. Aggiungi quanto segue al file CopSSH / home / user / .bashrc dell’utente:

    GITPATH='/cygdrive/c/Program Files (x86)/Git/bin' GITCOREPATH='/cygdrive/c/Program Files (x86)/Git/libexec/git-core' PATH=${GITPATH}:${GITCOREPATH}:${PATH} 
  5. Apri Git Bash e crea un repository ovunque sul tuo PC:

     $ git --bare init repo.git Initialized empty Git repository in C:/repopath/repo.git/ 

PC client

  1. Installa msysgit.
  2. Usa la chiave privata che hai creato sul server per clonare il repository da ssh: // utente @ server: porta / repopath / repo.git (per qualche motivo, la radice è l’unità C 🙂

Questo mi ha permesso di clonare e commettere con successo, ma non ho potuto spingere al repository nudo sul server. Ho continuato a ottenere:

 git: '/repopath/repo.git' is not a git command. See 'git --help'. fatal: The remote end hung up unexpectedly 

Questo mi ha portato alla traccia e alla soluzione di Rui che doveva creare o aggiungere le seguenti righe a .gitconfig nel percorso % USERPROFILE% del PC client (C: \ Users \ UserName).

 [remote "origin"] receivepack = git receive-pack 

Non sono sicuro del motivo per cui ciò è necessario … se qualcuno potesse fornire informazioni utili, sarebbe utile.

la mia versione git è 1.7.3.1.msysgit.0

GitStack dovrebbe raggiungere il tuo objective. Ho una configurazione guidata. È gratuito per 2 utenti e ha un’interfaccia utente basata sul web. È basato su msysgit.

C’è un bel stack Git open source chiamato Git Blit. È disponibile per diverse piattaforms e in diversi pacchetti. È anche ansible distribuirlo facilmente sul Tomcat esistente o su qualsiasi altro contenitore di servlet. Dai un’occhiata a Setup git server su windows in pochi click tutorial per maggiori dettagli, ci vorranno circa 10 minuti per ottenere l’installazione di base.

Non hai bisogno di SSH per condividere git. Se si è su una LAN o VPN, è ansible esportare un progetto git come cartella condivisa e montarlo su una macchina remota. Quindi configura il repository remoto usando “file: //” URL invece di “git @” URL. Prende tutti di 30 secondi. Fatto!

Potrebbe semplicemente non esserci una guida del genere. Se è così, potresti non avere molta fortuna a convincere qualcuno a scriverne uno, perché sarebbe molto lavoro.

Consiglierei una delle due cose. Più facile è seguire la guida che hai pedissequamente, il che significa dimenticare msysgit.

Il più difficile è mettere su un server Linux – magari come ospite su Windows usando VirtualBox (gratuito) o VMWare o Parallels (a pagamento), e poi seguire una delle tante serie di istruzioni a cui Google ti condurrà. Ma probabilmente troverai che quelle istruzioni sono insufficienti – di solito presumono che tu abbia già configurato un server ssh, per esempio, quindi devi ottenere quelle informazioni altrove. L’ho fatto due volte e posso dire che a meno che tu non sia già qualcosa di un guru di Linux, sarà una lotta.

Ho fatto quello che suggeriva Bob Murphy era l’opzione “difficile”.

Ho installato Ubuntu sotto VMWare Server (gratuito) al lavoro e ho seguito questa guida per configurare Gitosis. L’ho trovato molto più facile che provare a farlo funzionare sotto Windows. Una volta impostato, non è necessario toccarlo perché l’amministrazione Gitosis può essere eseguita da Windows spingendo le versioni aggiornate del file gitosis.conf. Tutto il lavoro che devo fare sul server direttamente è fatto tramite PuTTY, quindi non devo usare l’orribile interfaccia del server VMWare.

Recentemente ho lavorato con VirtualBox a casa e ho trovato molto più bello / più facile da utilizzare rispetto a VMWare Server, quindi potrebbe essere utile guardarlo.

Volevo solo aggiungere le mie esperienze con l’impostazione PATH che Steve e Timc menzionano sopra: ho avuto dei problemi di authorization usando gli strumenti di shell (come mv e cp ) con gli eseguibili di shell di Git per primi nel percorso.

Aggiungendoli dopo il PATH esistente, questo ha risolto i miei problemi. Esempio:

GITPATH='/cygdrive/c/Program Files (x86)/Git/bin' GITCOREPATH='/cygdrive/c/Program Files (x86)/Git/libexec/git-core' PATH=${PATH}:${GITPATH}:${GITCOREPATH}

Immagino che CopSSH non vada molto d’accordo con tutti gli eseguibili di shell di msysgit

Sto utilizzando GitWebAccess per molti progetti da ormai sei mesi e si è dimostrato il migliore di quello che ho provato. Sembra, tuttavia, che le fonti recenti non siano supportate, quindi non utilizzare gli ultimi binari / fonti. Attualmente sono rotti 🙁

Puoi compilare da questa versione o scaricare i binari compilati che uso da qui .