Come posso ignorare le cartelle bin e obj dal repository git?


111

Voglio ignorare le cartelle bin e obj dal mio repository git. Come ho scoperto, non esiste un modo semplice per farlo in .gitignore. Quindi, ci sono altri modi? Usando una soluzione pulita in Visual Studio?


Per me funziona bene - aggiungo le parole "bin" e "obj" come righe separate nel mio file .gitignore
Tim Robinson,

1
E se la soluzione consiste in tanti progetti, non uno solo?
chester89,

Puoi pubblicare esattamente quello che stai provando e quello che non funziona. obje binin un livello superiore .gitignore dovrebbe ignorare tutto ciò che viene chiamato objoa bintutti i livelli inferiori.
CB Bailey,

2
La mia comprensione è che i contenuti .gitignore si applicano in ogni sottodirectory, quindi "bin" e "obj" funzionano ovunque. Pubblicherò il mio .gitignore in una risposta.
Tim Robinson,

Risposte:


164

Non sono sicuro del motivo per cui questo non funziona per te. Nel caso in cui aiuti, ecco un tipico file .gitignore da uno dei miei progetti Visual Studio / git:

*.suo
*.user
_ReSharper.*
bin
obj
packages

4
Aggiungo anche packagesperché puoi facilmente scaricarli nuovamente da NuGet
Michal Ciechan

1
non funziona quando si esegue prima il commit di tutti i file, quindi si aggiunge il file .gitignore al repository e lo si esegue. I file appena ignorati verranno comunque mostrati come modificati (se ricostruisci, ad esempio).
vlad2135

7
Recentemente ho utilizzato il file .gitignore suggerito che si trova qui: github.com/github/gitignore/blob/master/VisualStudio.gitignore con grande successo.
BigTFromAZ

1
@BigTFromAZ Dovresti aggiungerlo come risposta, è molto meglio di quello accettato!
Avrohom Yisroel

61

la semplice creazione di una voce in gitignore potrebbe non ignorare i file, potrebbe essere necessario eseguirne il commit. Ho usato il seguente metodo e ho lavorato per me

git rm -r --cached .

git add .

poi

git commit -am "Remove ignored files"

Tuttavia, questo ignora la mia cartella degli script che ho incluso in seguito nel repository.


Funziona bene. Ma Vscode non è riuscito a trovare il codice modificato. Ho cambiato qualcosa da solo e l'ho spinto a origin master. Poi ha funzionato. :)
Dentrax

Ho una soluzione con molti progetti e per qualche motivo il git aggiunge. non si completa mai.
Chucky

Grande Arvind !, uno sviluppatore principiante ha unito tutti i bin / e obj / al nostro ramo di lavoro (saltando le politiche ... non so come!) E questo era il modo per rimuovere tutti quei file dal repository.
equintas

Newbie me (almeno per git), l'ho fatto a me stesso. Non ho mai pensato di rm e poi di aggiungere di nuovo perché non ho capito che git rm cancella solo gli elementi dall'indice e non dal disco. Quindi, se ho capito bene, i tuoi primi due comandi hanno ricostruito l'indice cancellando tutto dall'indice e aggiungendo tutto di nuovo, applicando i filtri .gitignore. Quindi il commit lo rende così nel repository. Molto intelligente.
BigTFromAZ

Grande! Questo ha funzionato perfettamente bene per me. tutti i file .vs, obj, bin e altri file ignorati.
Stanley Okpala Nwosa il

9

Se utilizzi Visual Studio, esiste un modo semplice per farlo.

  1. Apri Team Explorer
  2. Fare clic su Impostazioni
  3. Impostazioni del repository
  4. Nella sezione Ignora file e attributi fare clic su Aggiungi accanto a Ignora file.

Creerà un file .gitignore predefinito, che ignorerà la maggior parte delle cartelle e dei file comuni che verranno utilizzati da framework / lingua.

inserisci qui la descrizione dell'immagine


3
  • Individua le cartelle bine objin Esplora risorse
  • Fare clic con il tasto destro del mouse su TortoiseGit> Elimina e aggiungi all'elenco da ignorare> bin
  • Fare clic con il tasto destro del mouse su TortoiseGit> Elimina e aggiungi all'elenco di elementi da ignorare> obj

1
Funziona perfettamente. grazie @Denys Wessels
Biswajit Panday

2

Se vuoi ignorare bin e obj in TUTTI i tuoi progetti, puoi usare (dalla pagina man di gitignore )

Pattern letti dal file specificato dalla variabile di configurazione core.excludesfile.

core.excludesfile può essere impostato in un file di configurazione che è ~ / .gitconfig in Unix - Non so dove sia sotto Windows


Buone informazioni, ma intendeva tutti i suoi progetti Visual Studio in questa soluzione non TUTTI i progetti sulla macchina.
AhHatem

2
Anche se molto probabilmente non sarà mai interessato a impegnare le cartelle bine objin QUALSIASI soluzione. :)
MEMark

1

Se hai eseguito il commit delle cartelle bin e obj in precedenza, aggiungerle a .gitignore non le eliminerà automaticamente. Ad esempio, è necessario eseguire il commit dell'eliminazione di queste cartelle git rm -rf objo git rm -rf yourProject/obj quindi eseguire il commit dell'eliminazione


0

Se provi attraverso l'albero dei sorgenti e ancora i file ignorati non arrivano, vai su strumenti -> opzione-> Git e quindi seleziona la posizione del .gitignore inserisci qui la descrizione dell'immagine


0

Nel mio caso, le cartelle bin e obj erano nidificate nella cartella Project dal file root .gitignore, quindi ho dovuto aggiungerlo come di seguito:

[PROJECT_FOLDER_NAME] / bin
[PROJECT_FOLDER_NAME] / obj

Sostituisci PROJECT_FOLDER_NAME con il nome della cartella del progetto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.