2012-06-22 18 views
6

E 'possibile avere git pull e git push in un comando git?git pull e git push in una volta

La sintassi come git pull & git push non mi soddisfa completamente, poiché è necessario fornire le credenziali al server due volte: in pull e su push.

Quindi mi chiedo, c'è qualche soluzione per questo? Credo che dovrebbe essere, dal momento che è piuttosto comune quando lo sviluppatore estrae l'origine remota prima di premere le modifiche locali.

EDIT: Sto utilizzando Windows 7/x64, msysgit-utf8 1.7.9

+1

Può essere pericoloso se non ci sono conflitti di fusione no? –

+1

Che protocollo? ci sono modi per fornire credenziali solo una volta per sessione – CharlesB

+3

Non farlo. Configurare l'autenticazione a chiave pubblica o modificare il protocollo in modo che sia possibile. – wadesworld

risposta

4

Prima di tutto, è possibile configurare il file _netrc che verrà utilizzato da Git, ecco il relativo problema: Git - How to use .netrc file on windows to save user and password poi si può configurare un alias per il comando:

git config alias.publish '!git pull && git push'` 

e proprio tipo: git publish

+0

Posso aggiungere il login all'URL del repository usando il simbolo @ come separatore. E posso aggiungere la mia password a '.git/config'. Ma non voglio memorizzare le mie password. Mi piace essere chiesto con la password. Ma solo una volta! – shytikov

+0

Credo che questa soluzione '.netrc' non funzionerà con la connessione ssh ... – shytikov

+0

Non è necessario aggiungere login e password a .git/config. È un modo sbagliato. Se usi la connessione ssh, allora non è meglio usare le chiavi pubbliche per quello. Per la connessione https in base alle credenziali è possibile utilizzare il file _netrc in Windows, prestare attenzione alla sottolineatura nel nome del file anziché al punto. – lisachenko

0

mi consiglia di fare qualcosa solo veloce e sporco in questo caso. Potrebbe non essere il modo più efficiente per farlo, ma vorrei solo creare uno script bash in vim con i comandi ed eseguirlo considerando la semplicità dei comandi. Quindi puoi semplicemente aprire quel file ogni volta che vuoi tirare e spingere allo stesso tempo.

Tutto ciò che dovete fare è creare il file, inserire le due linee di comandi che volete scrivere e digitare quel nome di file nella riga di comando ogni volta che volete eseguirli.

Ancora, non il modo più efficiente, ma una soluzione rapida.

+0

Non risolve la situazione con la doppia autenticazione ... E questo è il problema. Non mi dà fastidio scrivere "git pull & git push". Non voglio digitare la mia password due volte, poiché credo che dovrebbe essere l'ottimizzazione per questo. Ma non l'ho ancora trovato ... – shytikov

0

È meglio utilizzare SSH, ma se non è possibile utilizzare SSH, si può sempre utilizzare l'archivio di Windows le credenziali per salvare la password in modo non è necessario compilare in due volte:

git config --global credential.helper wincred 

Fonte: Git documentation