2012-09-19 19 views
73

Sto lavorando la prima volta su git. Ho spinto il mio ramo su Github e ha spinto tutta la libreria e i documenti nel github. Ora cosa posso fare e come posso usare il comando gitignore per evitare di ripetere lo stesso errore.Come utilizzare il comando gitignore in git

+1

'.gitignore' è un file nella tua directory root git. Aggiungi i modelli dei nomi per i file che desideri ignorare e i file verranno ignorati automaticamente. – LonelyWebCrawler

+0

Sono su ubuntu. Puoi dirmi il percorso della directory root git – user1559230

+2

È la directory in cui hai usato 'git init'. La directory '.git' si trova lì. – LonelyWebCrawler

risposta

101

Quindi, in base a ciò che hai detto, questi file sono librerie/documentazione che non vuoi eliminare ma anche non vuoi inviare a github. Diciamo che hai il tuo progetto nella cartella your_project e una directory doc: your_project/doc.

  1. Rimuovere dalla directory del progetto (senza realmente eliminarlo): git rm --cached doc/*
  2. Se non si dispone già di un .gitignore, si può fare uno proprio all'interno della cartella del progetto: project/.gitignore.
  3. Mettere doc/* nel .gitignore
  4. fase il file di commettere: git add project/.gitignore
  5. Commit: git commit -m "message".
  6. Invia la modifica a github.
+0

puoi dirmi come scrivere il file .gitignore, ad esempio, come scrivere il percorso delle cartelle e dei file che voglio ignorare all'interno del file .gitignore. Grazie – user1559230

+0

Grazie per la risposta. Prima del commit dovevo eseguire git add -A – user1559230

+4

Ciao, il gitignore è solo un semplice file di testo. .gitignore (DOTgitignore). Basta inserire il nome del file/tipo di file che vuoi git da ignorare, uno per riga. Esempio: http://www.sujee.net/tech/articles/gitignore/ – qusr

7

C'è un file nella vostra directory root git denominata .gitignore. È un file, non un comando. Hai solo bisogno di inserire i nomi dei file che vuoi ignorare, e saranno automaticamente ignorati. Ad esempio, se si desidera ignorare tutti i emacs file di salvataggio automatico, che terminano in ~, allora si potrebbe aggiungere questa riga:

*~ 

Se si desidera rimuovere i file indesiderati dal ramo, è possibile utilizzare git add -A, che "removes files that are no longer in the working tree".

Nota: Quello che ho chiamato la "directory radice git" è semplicemente la directory in cui è stato utilizzato git init per la prima volta. È anche dove puoi trovare la directory .git.

+0

cosa succederà ai file già spinti che non voglio – user1559230

7

git ignore è una convenzione in git. L'impostazione di un file con il nome .gitignore ignora i file in quella directory e le directory più profonde che corrispondono ai modelli contenuti nel file. L'uso più comune è solo quello di avere un file come questo al livello più alto. Ma è possibile aggiungere altri più profondi nella struttura della directory per ignorare ancora più schemi o smettere di ignorarli per quella directory e successivamente quelli più profondi.

Allo stesso modo, è possibile "non ignorare più" alcuni file in una struttura più profonda o uno specifico sottoinsieme (vale a dire, si ignora * .log, ma vuole tenere traccia ancora important.log) da specificando modelli che iniziano con !. ad esempio:

*.log !important.log 

ignora tutti i file di log, ma sarà tenere traccia dei file denominati important.log

Se stai monitorando i file che significava ignorare, cancellarli, aggiungere il modello da voi .gitignore di file e aggiungere tutte le modifiche

# delete files that should be ignored, or untrack them with 
# git rm --cached <file list or pattern> 

# stage all the changes git commit 
git add -A 

da ora in poi il repository non verrà rintracciato.

Se volete ripulire la vostra storia, è possibile

# if you want to correct the last 10 commits 
git rebase -i --preserve-merges HEAD~10 

quindi contrassegnare ogni commit con e o edit. Salva il piano. Ora git ripeterà la tua storia fermandosi ad ogni commit che hai segnato con e. Qui si eliminano i file che non si desidera, git add -A e quindi git rebase --continue finché non si esegue . La tua storia sarà pulita. Assicurati di dirti che i tuoi colleghi come tu dovranno forzare il push e dovranno rebase su ciò che non hanno ancora spinto.

0

sul mio mac ho trovato questo file .gitignore_global .. era nella mia home directory nascosta quindi fare un ls -altr per vederlo.

Ho aggiunto file di eclissi che volevo git ignorare. il contenuto seguente aspetto:

*~ 
.DS_Store 
.project 
.settings 
.classpath 
.metadata 
+0

quando ho inserito il file .gitignore nella mia cartella del progetto ha incasinato il mio progetto eclipse localmente . sai perché questo potrebbe accadere e come prevenirlo ?? per ora sto solo lontano da .gitignore. – JesseBoyd

+0

Non uso più eclipse. Inteilji ora – j2emanue

12

Se non si dispone di un file .gitignore, il primo utilizzo:

touch .gitignore 

allora questo comando per aggiungere righe nel file gitignore:

echo 'application/cache' >> .gitignore 

Attenzione alle nuove linee

Problemi correlati