Come ignoro tutti i file in una cartella con un repository Git in Sourcetree?


86

Ho un repository Git di Bitbucket gestito con Sourcetree.

Ho due cartelle che voglio impegnare, ma devo ignorare tutti i file in queste cartelle, perché contengono solo file temporanei.

Come posso fare ciò?

Risposte:


54

Aggiungi questo a .gitignore:

*
!.gitignore

13
Questo dovrebbe essere aggiunto all'interno di ogni cartella che desideri monitorare. L'esistenza di questo file stesso farà sì che git tenga traccia della cartella (monitorando questo file). I *mezzi ignorano tutti i file e i !.gitignoremezzi non ignorano il file stesso
Billy Moon

2
Come ha spiegato Billy Moon, grazie. Quindi puoi creare file .gitignore nelle directory. Questo file dice a Git cosa ignorare o cosa no.
Gergo Erdosi

21
Come lo fai in SourceTree?
1,21 gigawatt

1
Non hai bisogno di SourceTree per questo, .gitginoreè un file normale, basta crearlo nella directory quale contenuto vuoi ignorare.
Gergo Erdosi

1
Come menzionato da @ AD7six di seguito, non aggiungere! .Gitignore al file poiché non è necessario.
Xcalibur

155

Per gli utenti di Sourcetree: se vuoi ignorare una cartella specifica, seleziona semplicemente un file da questa cartella, fai clic destro su di esso e fai "Ignora ...". Avrai un menu a comparsa in cui puoi ignorare "Ignora tutto sotto: <LA TUA CARTELLA NON DESIDERATA>"

Primo menu

Secondo menu

Se l'opzione "Ignora" è disattivata, devi selezionare l'opzione "Interrompi monitoraggio". Dopodiché, il file verrà aggiunto ai file Staged con un segno meno sull'icona di sfondo rosso e l'icona del file nell'elenco dei file Unstaged cambierà in un segno di domanda su sfondo viola. Ora nell'elenco dei file non archiviati , l'opzione "Ignora" è nuovamente abilitata. Basta fare come descritto sopra.


14
Se la cartella è già stata salvata, eliminala prima, salva le modifiche, quindi segui i passaggi precedenti.
RMorrisey

16
Ho l'opzione "Ignora" disattivata. Qualcuno sa perché?
Andrei Karcheuski

6
Ignora è disattivato anche per me.
Micah Zoltu

ignora aggiungi a git ignore? se no perché no?
Joe Lloyd

1
@ JoeLloyd sì, aggiunge a git ignore. Puoi persino eseguire il commit del file git ignore creato / modificato come qualsiasi altro file.
Kalzem

25

Fare clic con il tasto destro su un file → IgnoraIgnora tutto sotto .

Se l' opzione Ignora è disattivata, allora:

  1. Metti prima in scena un file
  2. Fare clic con il pulsante destro del mouse → Interrompi monitoraggio
  3. Quel file verrà visualizzato nel riquadro sottostante con un punto interrogativo → Fare clic con il pulsante destro del mouse → Ignora

Inserisci qui la descrizione dell'immagine


7

Per quanto ne so, Git non tiene traccia delle cartelle, solo dei file, quindi le cartelle vuote (o le cartelle in cui tutti i file vengono ignorati) non possono essere salvate. Se ad esempio hai bisogno che la cartella sia presente a causa di qualche passaggio nel tuo processo di costruzione, forse puoi farla creare dal tuo strumento di costruzione? Oppure puoi mettere un file vuoto e non ignorato nella cartella e salvarlo.


1
Vuoi dire che se voglio tenere traccia della cartella devo aggiungere un file "fittizio" e ignorare il resto? : - /
rubdottocom

2
@rubdottocom: credo di sì; le cartelle esistono in git solo a causa dei file che si trovano in esse. Perché è necessario controllare la versione di una cartella vuota?
Aasmund Eldhuset

2
Ci sono molti motivi per tenere traccia delle cartelle vuote. Potresti volere che un checkout abbia la cartella pronta per essere utilizzata dalle persone, senza doverla creare individualmente. Il tuo codice potrebbe dipendere dall'esistenza di una determinata cartella, ad esempio una cartella che attende caricamenti, e se la cartella non esiste, non riesce a caricare i file lì ecc ...
Billy Moon

Per il motivo spiegato da @AasmundEldhuset, la risposta data da Gergo ha la giusta soluzione.
Billy Moon

@ BillyMoon: sono d'accordo che potrebbero esserci dei motivi; Mi chiedevo quali fossero le sue particolari esigenze, in modo da poter suggerire la soluzione più adatta. :-) Il trucco di Gergo è stato accurato, anche se equivale ad aggiungere un (più o meno) file fittizio alla cartella, come ho suggerito. La sua soluzione era più git-ish, però, quindi +1 per lui.
Aasmund Eldhuset

5

Dopo aver battuto la testa su questo per almeno un'ora, offro questa risposta per cercare di espandere i commenti che altri hanno fatto. Per ignorare una cartella / directory, procedi come segue: se non hai un file .gitignore nella radice del tuo progetto (che si chiama esattamente ".gitignore"), crea un file di testo fittizio nella cartella che desideri escludere. All'interno dell'albero di origine, fai clic con il pulsante destro del mouse su di esso e seleziona Ignora. Otterrai un popup simile a questo.

inserisci qui la descrizione dell'immagine

Seleziona "Tutto sotto" e seleziona la cartella che desideri ignorare dall'elenco a discesa. Questo creerà un file .gitignore nella directory principale e inserirà la specifica della cartella in esso.

Se hai già una cartella .gitignore nella tua cartella principale, puoi seguire lo stesso approccio sopra, oppure puoi semplicemente modificare il file .gitignore e aggiungere la cartella che desideri escludere. È solo un file di testo. Si noti che utilizza barre in avanti nei nomi di percorso piuttosto che barre rovesciate, come noi utenti Windows siamo abituati. Ho provato a creare un file di testo .gitignore a mano in Windows Explorer, ma non mi ha permesso di creare un file senza nome (cioè con solo l'estensione).

Tieni presente che l'aggiunta di .gitignore e della specifica del file non avrà alcun effetto sui file già tracciati. Se li stai già monitorando, dovrai interrompere il tracciamento. (Fare clic con il pulsante destro del mouse sulla cartella o sul file e selezionare Interrompi monitoraggio.) Li vedrai quindi cambiare da un'icona verde / pulita o ambra / modificata a un'icona rossa / rimossa. Al tuo prossimo commit i file verranno rimossi dal repository e successivamente verranno visualizzati con un'icona blu / ignorata. Un altro collaboratore ha chiesto perché Ignora fosse disabilitato per file particolari e credo che fosse perché stava cercando di ignorare un file che era già stato tracciato. È possibile ignorare solo un file con l'icona di un punto interrogativo blu.


Per creare il file .gitignore in Widnows, usa il comando Git bash 'touch .gitignore'
Mikee

4

Come accennato da altri: git non tiene traccia delle cartelle, solo dei file.

Puoi assicurarti che esista una cartella con questi comandi (o una logica equivalente):

echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"

L'esistenza del file significherà che chiunque effettui il check-out dal repository avrà la cartella.

Il contenuto del file gitignore significherà che qualsiasi cosa in esso viene ignorata

Non è necessario non ignorare il file .gitignore stesso . È una regola che non servirebbe a nulla una volta commessa.

O

se preferisci mantenere tutte le definizioni da ignorare nello stesso posto, puoi creare .gitignore nella radice del tuo progetto con contenuti in questo modo:

*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder

e per garantire che le cartelle esistano

touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"

"qualsiasi cosa" può letteralmente essere qualsiasi cosa. I nomi comunemente usati sono .gitignore, .gitkeep, empty.


3

Se l' opzione Ignora è disattivata, è necessario interrompere il monitoraggio del file prima di poterlo ignorare. Puoi semplicemente fare clic con il pulsante destro del mouse sul file e premere "Stop Tracking".

Accanto dovrebbe apparire un'icona blu. Fare nuovamente clic con il pulsante destro del mouse e fare clic su ignora.


2

Ignora la cartella completa sull'albero di origine.

   Just Open Repository >Repository setting > Edit git ignore File and 
   you can rite some thing like this :

 *.pdb 
*.bak 
*.dll
*.lib 
.gitignore
packages/ 
*/bin/
*/obj/ 

Per la cartella bin e la cartella obj scrivi: * / bin / * / obj /


0
  • Ignora tutti i file nella cartella con Git in Sourcetree:

Ignora tutti i file nella cartella con Git in Sourcetree


-2

In Sourcetree: ignora semplicemente un file nella cartella specificata. Sourcetree ti chiederà se desideri ignorare tutti i file in quella cartella. È perfetto!


14
-1 Una risposta inutile. Dal momento che non spieghi come fare l'ignore (in sourcetree)!
Ingegnere
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.