2011-12-04 24 views
10

Ho un repository con un codice di base in esso e per ciascun client desidero clonarlo in modo da poter eseguire git pull ogni volta che un client desidera eseguire l'aggiornamento alle funzionalità più recenti.Git disable push dal repository locale

Nell'interesse di non rovinare le cose e apportare modifiche che solo una società vede, esiste un modo per consentire il recupero solo su una base di repository locale? Voglio ancora poter apportare modifiche al repository core dal mio ambiente di sviluppo, ma non voglio che le macchine di produzione siano in grado di spingere.

+0

credo che dipende da quello che si sta utilizzando per ospitare il repository git. È Github, il tuo server git o altro? –

+0

possibile duplicato di [Come rendere un repository git di sola lettura?] (Http://stackoverflow.com/questions/1662205/how-to-make-a-git-repository-read-only) –

risposta

15

Specificare uno pushing non esistente nella sezione remota del repository clone-source (denominato origine) nel file .git/config. Esempio:

[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = <url> 
     pushurl = www.non-existing-url.com 

Oppure, se non ti piace la modifica del file di configurazione del repository è possibile digitare:

$ git config remote.origin.pushurl www.non-existing.com 

Quando si preme si otterrà un messaggio di errore del tipo:

$ git push 
fatal: 'www.non-existing-url.com' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 

Ovviamente è necessario modificare il file di configurazione di ciascun repository clonato.

+0

Questo assomiglia al informazioni che stavo cercando. Ho appena smontato i miei repository mentre li sto riassemblando in un modo nuovo, ma una volta riavviati li testerò. –

5

Trovo il comando remoto più utile, quindi non devo confondere direttamente le configurazioni.

git remote set-url --push origin www.non-existing-url.com 

dovrebbe funzionare così

Problemi correlati