Tengo directorys en components/root/js/
y components/example/js/
, y no quiero que estos sean rastreados por Git.
Sin embargo, tengo un directory components/root/js2/plugins/js/
, que quiero que Git rastree.
Lo busqué en línea y lo encontré solo **
, que creo que no resuelve mi problema.
Mi actual .gitconfig
contiene la línea:
js/
Intenté cambiar esto por:
components/**/js/
Pero esto coincide con los components/root/js/
, components/example/js/
, pero también con los components/root/js2/plugins/js/
(una carpeta js
debajo del segundo nivel de components
; solo quiero ignorar las carpetas js
en el segundo nivel).
¿Cómo puedo lograr este objective?
OK, ¿qué tal esto?
js/ !components/root/js2/plugins/js/
Ignorará todos los directorys llamados js
excepto los que se especifican después !
. En tal escenario, git
ignorará los components/root/js/
pero no ignorará los components/root/js2/plugins/js/
.
**
no funcionará porque como se dice en el man gitignore
:
Un "**" final coincide con todo lo que está adentro. Por ejemplo, "abc / **" coincide con todos los files dentro del directory "abc", con respecto a la location del file .gitignore, con profundidad infinita.
Puede colocar files .gitigore
en cualquier directory que será una solución más confiable si los directorys se mueven más tarde.
.gitignore
2 files .gitignore
:
Uno en el proyecto raíz /.gitignore
que excluye js
js
Uno en el directory de plugins
/components/root/js2/plugins/.gitignore
que anula root .gitignore
! js
Si el directory de plugins
moverá más tarde, por ejemplo, a los components/root/plugins
.gitignore
se .gitignore
.
Si configuras todo en el .gitignore
raíz, no debes olvidar editar el .gitignore
raíz si el directory se mueve.