Come utilizzare il comando gitignore in git


119

Sto lavorando per la prima volta su git. Ho spinto il mio ramo su GitHub e ha spinto tutta la libreria ei documenti in GitHub. Ora cosa posso fare e come posso usare il comando gitignore per evitare di nuovo lo stesso errore.


1
.gitignoreè un file nella tua directory root di git. Aggiungi i modelli di nome per i file che desideri ignorare e i file verranno ignorati automaticamente.
LonelyWebCrawler

Sono su Ubuntu. Puoi per favore dire il percorso della directory root di git
user1559230

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

2
Per coloro che non sanno come usare gitignore - vai su gitignore.io puoi digitare tutti gli strumenti che stai usando (symfony, CakePHP, ZendFramework, wordpress, grunt, sublime text, netbeans e così via, ottieni il trapano ...) e genererà il file git ignore per te. Se non sai come usare gitignore, penso che il modo migliore per imparare sia guardare qualche buon esempio di caso d'uso (come quello generato da gitignore.io. Se vuoi usarlo dalla riga cmd (modo geek ) vedi questo tutorial: vimeo.com/70609819
DevWL

Risposte:


162

Quindi, in base a ciò che hai detto, questi file sono librerie / documentazione che non vuoi eliminare ma a cui non vuoi nemmeno inviare github. Supponiamo che tu abbia il tuo progetto nella cartellayour_project e directory doc: your_project/doc.

  1. Rimuoverlo dalla directory del progetto (senza eliminarlo effettivamente): git rm --cached doc/*
  2. Se non hai già un file .gitignore , è possibile effettuare uno proprio all'interno della cartella del progetto: project/.gitignore.
  3. Metti doc/*nel file .gitignore
  4. Metti in scena il file su cui eseguire il commit: git add project/.gitignore
  5. Commettere: git commit -m "message" .
  6. Spingi la tua modifica a github.

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

Grazie per la tua risposta. Prima del commit ho dovuto eseguire git add -A
user1559230

4
Ciao, il gitignore è solo un semplice file di testo. In realtà è .gitignore (DOTgitignore). Metti semplicemente il nome del file / tipo di file che vuoi che git ignori, uno per riga. Esempio: sujee.net/tech/articles/gitignore
u19964


42

Se non hai un file .gitignore, usa prima:

touch .gitignore

quindi questo comando per aggiungere righe nel tuo file gitignore:

echo 'application/cache' >> .gitignore

Fai attenzione alle nuove linee


Non è necessario touchprima il file. >>è anche >se il file non esiste già. echoaggiunge una nuova riga alla fine dell'output. Puoi fermarlo con -n. Se avete bisogno di vari ignora, o fai vari echi, o l'uso -e, come segue: echo -e "**/cache/\n**.pyc" >> .gitignore. Il doppio asterisco corrisponde anche a tutti i file che scavano nelle cartelle in modo ricorsivo. Utilizzare /alla fine delle cartelle, per ogni evenienza.
mazunki

1
@Andrew tl; dr: Aggiungi ogni file ignorato con echo "file_to_be_ignored" >> .gitignore, non c'è bisogno di fare nient'altro. Termina i nomi delle cartelle con /come echo "**/modules/" >> .gitignore.
Mazunki

Perché il mio commento è stato cancellato
Andrew

12

git ignore è una convenzione in git. Impostazione di un file con il nome di.gitignore ignorerà i file in quella directory e le directory più profonde che corrispondono ai modelli contenuti nel file. L'utilizzo più comune è solo quello di avere un file come questo al livello superiore. Ma puoi aggiungerne altri più in profondità nella struttura della tua directory per ignorare ancora più schemi o smettere di ignorarli per quella directory e successivamente per quelli più profondi.

Allo stesso modo, puoi "non ignorare" determinati file in una struttura più profonda o in un sottoinsieme specifico (cioè, ignori * .log ma vuoi comunque tenere traccia di important.log) specificando modelli che iniziano con !. per esempio:

*.log !important.log

ignorerà tutti i file di registro ma terrà traccia dei file denominati important.log

Se stai monitorando i file che intendevi ignorare, eliminali, aggiungi il pattern al tuo file .gitignore e aggiungi 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 

d'ora in poi il tuo repository non li avrà tracciati.

Se desideri ripulire la tua cronologia, puoi farlo

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

quindi contrassegna ogni commit con eo edit. Salva il piano. Ora git riprodurrà la tua cronologia interrompendo ogni commit che hai contrassegnato con e. Qui elimini i file che non desideri git add -Ae poi git rebase --continuefinché non hai finito. La tua storia sarà pulita. Assicurati di dirlo ai tuoi colleghi perché dovrai forzare la spinta e dovranno ribasare ciò che non hanno ancora spinto.


8

C'è un file nella tua directory root di git chiamato .gitignore. È un file, non un comando. Devi solo inserire i nomi dei file che vuoi ignorare e verranno automaticamente ignorati. Ad esempio, se si desidera ignorare tutti i file di salvataggio automatico di emacs, che terminano con ~, è possibile aggiungere questa riga:

*~

Se vuoi rimuovere i file indesiderati dal tuo ramo, puoi usare git add -A, che " rimuove i file che non sono più nell'albero di lavoro ".

Nota: quella che ho chiamato "git root directory" è semplicemente la directory in cui hai utilizzato git initper la prima volta. È anche dove puoi trovare la .gitdirectory.


cosa succederà ai file già
inviati

4

Se non hai un file .gitignore. Puoi crearne uno nuovo

touch .gitignore

E puoi escludere una cartella inserendo il comando seguente nel file .gitignore

/folderName

spingere questo file nel tuo repository git in modo che quando una nuova persona clona il tuo progetto non deve aggiungerlo di nuovo


2

Esistono diversi modi per utilizzare gitignore git

  • specificando dal nome file specifico. ad esempio, per ignorare un file
    chiamato readme.txt, è sufficiente scrivere readme.txt nel file .gitignore.
  • puoi anche scrivere il nome dell'estensione del file. Ad esempio, per
    ignorare tutti i file .txt, scrivi * .txt.
  • puoi anche ignorare un'intera cartella. ad esempio si desidera ignorare la
    cartella denominata test. Quindi scrivi test / nel file.

basta creare un file .gitignore e scrivere quello che vuoi ignorare un file gitignore di esempio sarebbe:

# NPM packages folder.
node_modules

# Build files
dist/

# lock files
yarn.lock
package-lock.json

# Logs
logs
*.log
npm-debug.log*

# node-waf configuration
.lock-wscript

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

# Jest Coverage
coverage

.history/

Puoi trovare ulteriori informazioni sulla documentazione di git gitignore


1

sul mio Mac ho trovato questo file .gitignore_global .. era nascosto nella mia directory home quindi fai un ls -altrper vederlo.

Ho aggiunto file eclipse che volevo ignorare da git. il contenuto è simile a questo:

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

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

Non uso più eclipse. Inteilji ora
j2emanue
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.