¿Cómo ignoro todos los archivos en una carpeta con un repositorio Git en Sourcetree?

86

Tengo un repositorio de Bitbucket Git administrado con Sourcetree.

Tengo dos carpetas que quiero confirmar, pero necesito ignorar todos los archivos en estas carpetas, porque contienen solo archivos temporales.

¿Cómo puedo hacer eso?

rubdottocom
fuente

Respuestas:

54

Agregue esto a .gitignore:

*
!.gitignore
Gergo Erdosi
fuente
13
Esto debe agregarse dentro de cada carpeta que desee rastrear. La existencia de este archivo en sí hará que git rastree la carpeta (rastreando este archivo). Los *medios ignoran todos los archivos y los !.gitignoremedios no ignoran el archivo en sí
Billy Moon
2
Como explicó Billy Moon, gracias. Entonces puede crear archivos .gitignore en directorios. Este archivo le dice a Git qué ignorar y qué no.
Gergo Erdosi
21
¿Cómo se hace esto en SourceTree?
1,21 gigavatios
1
No necesita SourceTree para esto, .gitginorees un archivo normal, simplemente créelo en el directorio cuyo contenido desea ignorar.
Gergo Erdosi
1
Como lo menciona @ AD7six a continuación, no agregue! .Gitignore al archivo ya que no es necesario.
Xcalibur
155

Para los usuarios de Sourcetree: Si desea ignorar una carpeta específica, simplemente seleccione un archivo de esta carpeta, haga clic derecho sobre él y haga "Ignorar ...". Tendrá un menú emergente donde puede ignorar "Ignorar todo lo que hay debajo: <SU CARPETA NO DESEADA>"

Primer menú

Segundo menú

Si tiene la opción "Ignorar" en gris, debe seleccionar la opción "Detener seguimiento". Después de eso, el archivo se agregará a los archivos en etapas con un signo menos en el icono de fondo rojo y el icono del archivo en la lista de archivos sin etapas cambiará a un signo de pregunta sobre un fondo violeta. Ahora, en la lista de archivos sin etapas , la opción "Ignorar" está habilitada nuevamente. Simplemente haz lo que se describe arriba.

Kalzem
fuente
14
Si la carpeta ya está comprometida, elimínela primero, confirme los cambios y luego siga los pasos anteriores.
RMorrisey
16
Tengo la opción "Ignorar" atenuada. ¿Alguien sabe por qué?
Andrei Karcheuski
6
Ignorar también está atenuado para mí.
Micah Zoltu
¿Ignorar añadir a git ignorar? ¿si no, porque no?
Joe Lloyd
1
@JoeLloyd sí, se agrega a git ignore. Incluso puede enviar el archivo git ignore creado / editado como cualquier otro archivo.
Kalzem
25

Haga clic derecho en un archivo → IgnorarIgnorar todo lo que hay debajo .

Si la opción Ignorar está atenuada, entonces:

  1. Preparar un archivo primero
  2. Clic derecho → Detener seguimiento
  3. Ese archivo aparecerá en el panel de abajo con un signo de interrogación → Haga clic derecho sobre él → Ignorar

Ingrese la descripción de la imagen aquí

Andrei Karcheuski
fuente
7

Hasta donde yo sé, Git no rastrea carpetas, solo archivos, por lo que las carpetas vacías (o carpetas donde se ignoran todos los archivos) no se pueden confirmar. Si, por ejemplo, necesita que la carpeta esté presente debido a algún paso en su proceso de construcción, ¿quizás pueda hacer que su herramienta de construcción la cree en su lugar? O puede poner un archivo vacío y no ignorado en la carpeta y enviarlo.

Aasmund Eldhuset
fuente
1
¿Quiere decir que si quiero rastrear la carpeta tengo que agregar un archivo "ficticio" e ignorar el resto? : - /
rubdottocom
2
@rubdottocom: Eso creo; Las carpetas existen en git solo por los archivos que contienen. ¿Por qué necesita tener una versión de carpeta vacía controlada?
Aasmund Eldhuset
2
Hay muchas razones para rastrear carpetas vacías. Es posible que desee que una caja tenga la carpeta lista para que la utilicen las personas, sin tener que crearla individualmente. Su código puede depender de la existencia de una carpeta determinada, por ejemplo, una carpeta que espera cargas, y si la carpeta no existe, no puede cargar los archivos allí, etc.
Billy Moon
Por el motivo explicado por @AasmundEldhuset, la respuesta que da Gergo tiene la solución adecuada.
Billy Moon
@BillyMoon: Estoy de acuerdo en que puede haber razones; Me preguntaba cuáles eran sus necesidades particulares, para que pudiéramos sugerir la solución más adecuada. :-) El truco de Gergo fue genial, aunque equivale a agregar un archivo (más o menos) ficticio a la carpeta, como sugerí. Sin embargo, su solución fue más tonta, así que +1 para él.
Aasmund Eldhuset
5

Después de golpearme la cabeza con esto durante al menos una hora, ofrezco esta respuesta para tratar de ampliar los comentarios que otros han hecho. Para ignorar una carpeta / directorio, haga lo siguiente: si no tiene un archivo .gitignore en la raíz de su proyecto (ese nombre es exactamente ".gitignore"), cree un archivo de texto ficticio en la carpeta que desea excluir. Dentro del Árbol de fuentes, haga clic derecho sobre él y seleccione Ignorar. Obtendrá una ventana emergente que se ve así.

ingrese la descripción de la imagen aquí

Seleccione "Todo lo que hay debajo" y seleccione la carpeta que desea ignorar de la lista desplegable. Esto creará un archivo .gitignore en su directorio raíz y colocará la especificación de la carpeta en él.

Si ya tiene una carpeta .gitignore en su carpeta raíz, puede seguir el mismo enfoque anterior, o simplemente puede editar el archivo .gitignore y agregar la carpeta que desea excluir. Es solo un archivo de texto. Tenga en cuenta que utiliza barras diagonales en los nombres de las rutas en lugar de barras invertidas, como estamos acostumbrados los usuarios de Windows. Intenté crear un archivo de texto .gitignore a mano en el Explorador de Windows, pero no me permitió crear un archivo sin un nombre (es decir, con solo la extensión).

Tenga en cuenta que agregar el .gitignore y la especificación del archivo no tendrá ningún efecto en los archivos que ya se están rastreando. Si ya los está rastreando, tendrá que dejar de rastrearlos. (Haga clic con el botón derecho en la carpeta o el archivo y seleccione Detener seguimiento). Luego, verá que cambian de un icono verde / limpio o ámbar / cambiado a un icono rojo / eliminado. En su próxima confirmación, los archivos se eliminarán del repositorio y, a partir de entonces, aparecerán con un icono azul / ignorado. Otro colaborador preguntó por qué estaba deshabilitado Ignorar para archivos particulares y creo que era porque estaba tratando de ignorar un archivo que ya estaba siendo rastreado. Solo puede ignorar un archivo que tenga un icono de signo de interrogación azul.

Karl Hoaglund
fuente
Para crear un archivo .gitignore en Widnows, use el comando de Git bash 'touch .gitignore'
Mikee
4

Como han mencionado otros: git no rastrea carpetas, solo archivos.

Puede asegurarse de que existe una carpeta con estos comandos (o lógica equivalente):

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

La existencia del archivo significará que cualquier persona que consulte el repositorio tendrá la carpeta.

El contenido del archivo gitignore significará que cualquier cosa en él se ignorará

No es necesario que no ignore el archivo .gitignore en sí . Es una regla que no serviría para nada una vez que se aplica.

O

si prefiere mantener todas sus definiciones ignoradas en el mismo lugar, puede crear .gitignore en la raíz de su proyecto con contenidos como este:

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

y para asegurar que las carpetas existan

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

"cualquier cosa" puede ser literalmente cualquier cosa. Los nombres usados ​​comúnmente son .gitignore, .gitkeep, vacío.

AD7six
fuente
3

Si ignoras opción está atenuada, debe dejar de rastrear el archivo antes de poder ignorarlo. Simplemente puede hacer clic derecho en el archivo y presionar "Detener seguimiento".

Debería aparecer un icono azul junto a él. Haga clic derecho sobre él nuevamente y haga clic en ignorar.

LeRoy
fuente
2

Ignore la carpeta completa en el árbol de origen.

   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/ 

Para la carpeta bin y la carpeta obj simplemente escriba: * / bin / * / obj /

Rajesh Kumar
fuente
0
  • Ignore todos los archivos en la carpeta con Git en Sourcetree:

Ignore todos los archivos en la carpeta con Git en Sourcetree

Yatko
fuente
-2

En Sourcetree: simplemente ignore un archivo en la carpeta especificada. Sourcetree le preguntará si desea ignorar todos los archivos en esa carpeta. ¡Es perfecto!

AVEbrahimi
fuente
14
-1 Una respuesta inútil. ¡Ya que no explica cómo hacer el ignorar (en el árbol de fuentes)!
Ingeniero