2012-09-11 27 views
94

Alcuni come i file .orig vengono controllati nel mio repository git durante l'unione, che ora vengono visualizzati nel settore modificato e non tracciato. Ma non voglio più questi file nel mio repository. Come farlo.Come eliminare i file .orig dopo l'unione dal repository git?

modified: Gemfile.lock.orig 
    # modified: Gemfile.orig 
    # modified: app/assets/images/bg_required.png.orig 
    # modified: app/assets/javascripts/application.js.orig 

    etc... 

Qualsiasi aiuto sarà apprezzato.

+0

Eventuali duplicati http: // StackOverflow.it/questions/61212/remove-untracked-files-from-your-git-working-copy – ziu

+0

@ziu, Voglio rimuovere i file che sono già presenti nel mio repository, registrati da git merge o da qualche altro sviluppatore –

+0

I perso la parte sui file registrati. Tuttavia, i file .orig sono scritti da mergetool. Mi sembra una risoluzione di conflitto non pulita. – ziu

risposta

155

migliore soluzione in questo caso è quello di mantenere le cose semplici e di sbarazzarsi di questi file in modo indipendente su git:

cd /your/repo/directory 
find . -name '*.orig' -delete 
+12

Se si verifica un errore di predicato, utilizzare: find. -name '* .orig' | xargs rm -f – Neil

+0

Proprio come un avvertimento, usare 'find -delete' può essere pericoloso. Si prega di verificare che la directory (in questo caso '.') Sia corretta per assicurarsi che si stia cancellando solo ciò che si desidera eliminare – kingledion

-4

git rm <file>

http://git-scm.com/docs/git-rm

anche aggiungere file/cartelle che si desidera ignorare al file .gitignore.

+0

'git rm ' Basta elencarli. – veritas1

+0

grazie per il tuo tempo, ma ci sono molti file di questo tipo –

+0

Quindi devi elencare tutti i file, o usare uno strumento come find per passarli a git rm, o usare una shell glob e passarci sopra. Git non duplica questa funzionalità standard della riga di comando Unix. I file di origine – mabraham

5

È possibile ignorare i file usando .gitignore

Basta mettere * .orig nella lista come mostrato qui

https://help.github.com/articles/ignoring-files

per la cancellazione dei file correnti è possibile creare script di shell ed eseguire dalla cartella progetto come sotto

for file in `find *.orig -type f -print` 
do 
    echo "Deleting file $file" 
    git rm $file -f  
done 
+2

Anche se certamente può farlo, non è la cosa giusta da fare qui :) –

+0

sì, ma non influenzerà i file già messi in scena. –

+0

Penso che sia una buona idea in quanto mantiene il backup ma non interferisce con i file in staging. – akazemis

115

Prova git clean maggiori informazioni si possono trovare here o 01.238.

+1

Posso pulire i file non tracciati, ma per quanto riguarda la rimozione di tali file che sono già nel repository. –

+0

devi prima rimuovere il file dal repository 'git rm ' e poi commit.after questo aggiunge * .orig file in git ignore. – Amar

+4

prova 'git rm -r * .orig' vedi se funziona – Amar

2

git rm Gemfile.lock.orig e il resto dei file non necessari. git commit --amend

per rimuovere completamente quelle macchie, git gc --prune=0 --aggressive

+0

@linquizebut commit di git rm Gemfile.lock.orig entrerà nell'ultimo commit usando emendamento, giusto? c'è qualche altro modo per non avere alcun commit per tale file? –

0

Per me git clean -f rimosso tutti i file * .oig. E mantiene quelli che erano già lì prima.

Questo è ciò che (quasi) sembrava dopo l'unione:

$ git status 
On branch feature/xyz 
Your branch is ahead of 'origin/feature/xyz' by 568 commits. 
    (use "git push" to publish your local commits) 

Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

    .idea/codeStyles/ 
    .idea/misc.xml.orig 

.idea/codeStyles/ era già lì prima della fusione come un file non monitorate. .idea/misc.xml.orig (e molto altro) dovevano essere rimossi.

=> Uso git clean -f:

$ git clean -f 
Removing .idea/misc.xml.orig 

stata:

$ git status 
On branch feature/xyz 
Your branch is ahead of 'origin/feature/xyz' by 568 commits. 
    (use "git push" to publish your local commits) 

Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

    .idea/codeStyles/ 
Problemi correlati