Domanda

C'è un modo semplice per esportare / archiviare solo i file modificati da un dato commettere o serie di commit in Git? Non riesco a trovare le istruzioni chiare per fare questo (e io sono nuovo a Linux / Git).

Sto usando msysgit, e per la maggior parte sto bene con la distribuzione di interi repository ma in molti casi è molto più efficiente per distribuire piccole correzioni di alcuni file alla volta.

Spingendo / tirare / installazione git sui server remoti non è davvero un'opzione come il mio livello di accesso varia tra progetti e clienti.

C'è un modo straight-forward a (occhio e croce):

pipe 'diff --names-only' to 'git-archive'? 
È stato utile?

Soluzione

Non credo che ci sia alcuna necessità di coinvolgere git-archivio. Utilizzando --name-only, si potrebbe tar i file:

tar czf new-files.tar.gz `git diff --name-only [diff options]`

Dal momento che siete nuovi a Linux, questo potrebbe aver bisogno di qualche spiegazione:

I backticks nella riga di comando provocano la shell per eseguire prima il comando all'interno backticks, quindi sostituire l'output di quel comando nella linea di comando di tar. Così il git diff viene eseguito per primo, che genera un elenco di nomi di file, uno per ogni riga. Le nuove linee sono ridotti a spazi e l'intero elenco dei file è posto sulla linea di comando tar. Poi tar viene eseguito per creare il data archivio. Si noti che questo può generare linee di comando molto lunghi, quindi, se si dispone di un gran numero di file modificati potrebbe essere necessario una tecnica diversa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top