2014-10-30 8 views
13

Voglio salvare tutti i file tranne un file. Posso farlo usando il client GitHub per Windows o devo usare la riga di comando? Se devo usare la riga di comando, come la uso?Come salvare tutti i file tranne uno in GitHub per Windows

+0

Sì, è possibile farlo tramite il client –

+0

http://stackoverflow.com/questions/4475457/add-all -files-to-a-commit-except-a-single-file Controlla questo link. Questo potrebbe aiutarti. – user3269886

+0

Grazie per il suggerimento, ma il comando rimuove tutti i file modificati. Voglio solo salvare tutti tranne un file e il file dovrebbe avere delle modifiche. –

risposta

23

Per quanto ne so, questo non è possibile senza usare git shell/riga di comando. In Git Shell hai diverse opzioni. Tutti producono un risultato leggermente diverso.

  1. Se solo si desidera escludere il file per un po 'di tempo (forse uno commettere) e aggiungerlo in un futuro commit è possibile eseguire i seguenti comandi:

    git add . 
    git reset filename 
    git commit -m "commit message" 
    

    Il primo comando aggiunge tutto file nell'area di staging. Then the second command removes the one file from the staging area. This means the file is not added in the commit but the changes to it are preserved on your local drive.

  2. Se il file è già impegnata al repository, ma si solo sporadicamente vuole impegnarsi ulteriori modifiche del file, è possibile utilizzare git update-index --assume-unchanged in questo modo:

    `git update-index --assume-unchanged filename` 
    

    Se si modifica il file localmente non verrà aggiunto all'area di staging quando si esegue qualcosa per aggiungere tutti i file, ad esempio git add .. When, after some time, you want to commit changes to the file again, you can run git update-index --no-assume-unchanged filename to stop ignoring the changes.

  3. È possibile utilizzare il file .gitignore se non si desidera tenere traccia di un file. To ignore a file named filename you create, or edit, a file called .gitignore. Put filename on a line of its own to ignore that file. Ora il file non viene aggiunto all'area di gestione temporanea quando si esegue git add .. Nota: se il file è già archiviato, è necessario rimuoverlo dal repository per iniziare effettivamente a ignorarlo. Eseguire il seguente a fare proprio questo:

    `git rm --cached filename` 
    

    The --cached option specifies that the file should only be removed from the index. Il file locale, sia cambiato o no, rimarrà lo stesso. È possibile aggiungere il file .gitignore e eseguire il commit per fare in modo che il file venga ignorato su altre macchine, con lo stesso repository.

  4. Se si desidera ignorare un file non tracciato ma non si desidera condividere questo ignorando con altri contributori del repository è possibile inserire i nomi dei file ignorati nel file .git/info/exclude. La directory .git è normalmente nascosta ma è possibile renderla visibile alterando le opzioni della cartella. Come nel caso del file .gitignore, è necessario eseguire git rm --cached filename se il file è già stato archiviato da un commit precedente.

Alcune note:

  • Modifica filename nel nome effettivo del file che si desidera escludere.
  • Invece di escludere un singolo file, è anche possibile escludere una directory completa. Puoi farlo semplicemente sostituendo il nome della directory al posto di filename.
  • Un modo semplice per avviare Git Shell è avviare GitHub per Windows, facendo clic con il pulsante destro del mouse sul progetto in cui si desidera escludere/ignorare il file e selezionare l'opzione Open in Git Shell. Ora sei alla radice del repository git e puoi iniziare ad eseguire i comandi mostrati e descritti in questa risposta.
+0

Grazie. Ha funzionato. –

+1

Informazioni estremamente buone. Grazie mille! – adelineu

0

vorrei fare le seguenti operazioni:

git add . 
git checkout filename 
git commit -m "commit message" 

La prima riga aggiunge tutti i file nella lista, e la seconda linea rimuove il file specificato, dove "nomefile" dovrebbe essere il nome del file non vuoi nel tuo impegno.

O

git checkout filename 
git commit -am "commit message" 

git commit -am aggiunge i file e rende il messaggio di commit, allo stesso tempo.

E se è necessario rimuovere le modifiche apportate nel l'ultimo file:

git stash -u 
Problemi correlati