2013-09-23 19 views
53

Continuo a dire a me e agli altri di non eseguire commit .classpath e .project e utilizzare Maven.Ignora .classpath e .project da Git

In qualche modo, gli sviluppatori Junior ignorano sempre determinate regole e impegna quei file ed è molto meglio avere tali file per i principianti che possono saltare e iniziare a utilizzare il codice.

Ora da myside, mi piacerebbe provare/fare qualcosa. Quando clonato il repository, otterrò i file .classpath e .project e sicuramente verranno modificati nel mio sistema.

Ma voglio che non vengano commessi e devono sempre essere ignorati mentre si sincronizza con Git. In modo che le mie modifiche nel sistema locale non risolvano il problema con Git e Git le modifiche apportate a tali file non compromettano i miei file locali .

Come ottengo questo? In ogni caso, per contrassegnare quei file da ignorare in tal modo?

+0

Io sono un n00b completa di Java, ma secondo Eclipse documentazione, i file * dovrebbe * essere immagazzinate nella controllo della versione. http://wiki.eclipse.org/FAQ_How_do_I_set_up_a_Java_project_to_share_in_a_repository%3F –

risposta

71

Se la .project e .classpath sono già impegnati, quindi hanno bisogno di essere rimossi dall'indice (ma non il disco)

git rm --cached .project 
git rm --cached .classpath 

poi il .gitignore funzionerebbe (e quel file può essere aggiunto e condiviso attraverso i cloni).
Per esempio, questo file gitignore.io/api/eclipse sarà poi lavorare, che include:

# Eclipse Core  
.project 

# JDT-specific (Eclipse Java Development Tools)  
.classpath 

noti che si potrebbe usare un "Template Directory" quando la clonazione (assicurarsi che gli utenti hanno una variabile d'ambiente $GIT_TEMPLATE_DIR insieme a una cartella condivisa accessibile da tutti).
Questo modello di cartella può contenere un file info/exclude, con ignore rules che si desidera applicate per tutti i pronti contro termine, compresi quelli nuovi (git init) che qualsiasi utente avrebbe usato.

2

Utilizzare un file .gitignore. Questo ti permette di ignorare determinati file. http://git-scm.com/docs/gitignore

Ecco un esempio Eclipse uno, che gestisce classpath e file di progetto: https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore

+0

Sto già utilizzando .gitignore. Questo è applicabile se sto commettendo o creando nuovi repo dal mio locale. Se stai clonando il repository, suppongo che .gitignore non funzioni, esso recupera il file .project e le eventuali modifiche non saranno sincronizzate – Reddy

+2

Devi inviare il tuo ".gitignore' al repository in modo che tutti lo usino. In questo modo, nessuno dovrebbe inviare quei file. .classpath e .project non dovrebbero mai essere nel repository. – olan

+1

E i file/repository esistenti che contengono quei file? – Reddy

-1

È possibile controllare l'aiuto disponibile presso github (help.github.com/articles/ignoring-files) per informazioni su come ignorare determinati file ..

0

Aggiungere le righe sottostanti in .gitignore e posizionare il file all'interno ur cartella del progetto

/target/ 
/.classpath 
/*.project 
/.settings 
/*.springBeans 
+0

In che modo migliora la risposta già accettata? –

+0

Spiega cosa hai modificato la risposta, evita solo codice aswer – GGO

+0

Non ho visto nessuno rispondere a questa domanda, hanno appena dato qualche link per riferirsi. –