2013-02-21 10 views
7

Sono nuovo di git, mi dispiace se questa domanda ha già avuto risposta. Ho difficoltà a trovare la risposta a questo.Ramo commutato Dopo .gitignore e file .gitinored persi

Volevo ignorare un insieme di file che non erano mai stati impegnati prima per un commit e ho usato l'app Github per selezionarli e ignorarli. Sono passato a un altro ramo per un po 'e quando sono tornato al mio ramo, i miei file ignorati erano spariti.

Questi file sono stati cancellati?

Ho usato git checkout per tornare al ramo e quindi git status --ignorato. I miei file mancanti non ci sono.

+0

Git non cancella i file. Usa il comando 'git ls-files' e controlla se i tuoi file sono elencati. –

+1

L'ho provato e non ho visto i miei file. Sono su un mac e sono riuscito a trovare messages.sassc e gli altri miei file attraverso quella ricerca. Tuttavia, la "c" alla fine non è una parte normale dell'estensione. –

+0

'git status' mostra i tuoi file? –

risposta

1

È possibile eseguire questa operazione utilizzando git reflog -all per ottenere il codice SHA da quando l'app Github ha nascosto automaticamente i file ignorati prima di passare all'altro ramo. Vedi https://stackoverflow.com/a/8865242/2970321.

Ad esempio, ho recuperato una richiesta di pull (/pr/364) utilizzando l'app (SHA 2ba129d). Prima di tornare a gh-pages, ho nascosto i miei file ignorati (SHA 36edfc6).

finding the SHA code of a dropped stash

Quindi, per recuperare, tutto quello che dovevo fare era:

git checkout 36edfc6

miei file magicamente riapparso, e sono stato in grado di riporre in sicurezza manualmente da qualche altra parte prima di tornare a gh-pages ancora.

1

git non elimina i file che non si preoccupa se non specificatamente detto di farlo (da checkout -f in alcuni casi di check-out, o clean). Siccome lo git non sa nulla su di loro, non può nemmeno resuretterli. Utilizzare git stash prima di spostarsi e fare cose potenzialmente dannose. Valutare attentamente quali file vanno inseriti in .gitignore, aggiungere tutti i file non generati automaticamente al controllo di versione.

+0

Sembrerebbe (almeno nelle ultime versioni dell'app github) che i file ignorati vengano automaticamente nascosti quando si cambia ramo. Vedi la mia risposta. – alexw

+0

"aggiungi tutti i file generati automaticamente al controllo di versione." Sì! L'unica eccezione potrebbe essere costituita da file davvero enormi come i backup del database - nel qual caso è meglio memorizzarlo in una cartella completamente diversa (o una sottocartella ignorata in modo permanente). – Venryx

Problemi correlati