Qué es un en el comando git?

5 minutos de lectura

avatar de usuario
Samantha JT estrella

Actualicé, modifiqué y eliminé archivos en mi aplicación y ahora estoy listo para confirmar. Aquí está el estado:

C:\G\ab\WebAdminApp>git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   WebAdminApp.csproj
        modified:   WebAdminApp.csproj.user
        modified:   app/admin/controllers/ContentController.ts
        deleted:    app/admin/interfaces/IEnumService.ts
        modified:   app/admin/interfaces/IHomeController.d.ts
        modified:   lib/pagedown/Markdown.Sanitizer.ts
        deleted:    lib/typings/global.ts
        modified:   package.json
        modified:   ../abilitest-admin.v12.suo

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        app/interfaces/IEnumService.d.ts
        app/interfaces/IUtilityService.d.ts
        ../npm-debug.log

no se agregaron cambios para confirmar (use “git add” y/o “git commit -a”)

Cuando entro:

git add . 

Me da un mensaje que dice:

C:\G\ab\WebAdminApp>git add .
warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
whose behaviour will change in Git 2.0 with respect to paths you removed.
Paths like 'WebAdminApp/app/admin/interfaces/IEnumService.ts' that are
removed from your working tree are ignored with this version of Git.

* 'git add --ignore-removal <pathspec>', which is the current default,
  ignores paths you removed from your working tree.

* 'git add --all <pathspec>' will let you also record the removals.

Me gustaría que todo lo que hice en mi PC local se confirme y luego quiero que el maestro en GITHUB refleje esto.

alguien puede explicar que significa y ¿qué debo ingresar ahora para que todos los cambios puedan confirmarse con un compromiso de git? Lo siento, no me queda claro. ¿Es el directorio o ?

avatar de usuario
mfaani

esta respuesta fue enteramente derivado de Git Pathspecs y cómo usarlos. No he copiado todo, así que mira el enlace para profundizar más.


los pathspec es el mecanismo que usa git para limitar el alcance de un comando de git a un subconjunto del repositorio. Si ha usado mucho git, probablemente haya usado un pathspec lo sepas o no. Por ejemplo, en el comando git add README.mdlos pathspec es README.md. Sin embargo, es capaz de muchos más matices y flexibilidad.

Entonces, ¿por qué debería aprender sobre pathspec¿s? Dado que es parte de muchos comandos, estos comandos se vuelven mucho más poderosos con una comprensión de pathspecs. Con git add, puede agregar solo los archivos dentro de un solo directorio. Con git diffpuede examinar solo los cambios realizados en los nombres de archivo con una extensión de .scss. Puede git grep todos los archivos excepto los que están en el /dist directorio.

archivo o directorio

git add .      # add CWD (current working directory)
git add ..     # add parent directory and its subdirectories
git add src/   # add src/ directory
git add README # add only README directory

También tenga en cuenta que el git add el comando toma [<pathspec>...]. los ... significa posibilidad de ocurrencia múltiple. Entonces puedes hacer:

git add /content /images

y eso haría todos los cambios en ambos directorios.

si alguna vez lo haces ls -aenumerará todos los archivos y ‘entradas de directorio’, incluirá . y .. para más ver aquí

comodines

git log '*.js' # logs all .js files in CWD and subdirectories
git log '.*'   # logs all 'hidden' files and directories in CWD
git log '*/.*' # logs all 'hidden' files and directories in subdirectories

cima

los top La firma le dice a git que coincida con el patrón de la raíz del repositorio de git en lugar del directorio de trabajo actual. También puedes usar la abreviatura :/ en vez de :(top).

git ls-files ':(top)*.js'
git ls-files ':/*.js' # shorthand

caso

los icase la firma le dice a git que no se preocupe por el caso al hacer coincidir, por ejemplo, esto podría ser útil para hacer coincidir jpg archivos, que a veces usan la extensión en mayúsculas JPG.

git ls-files ':(icase)*.jpg'

excluir

Por último, está la firma mágica “excluir” (abreviatura de :! o :^). por ejemplo, puede buscar en todos sus .js archivos mientras se excluyen los .spec.js archivos de prueba.

git grep 'foo' -- '*.js' ':(exclude)*.spec.js' # search .js files excluding .spec.js
git grep 'foo' -- '*.js' ':!*.spec.js' .       # shorthand for the same

avatar de usuario
chwarr

Desde el Glosario Git:

[A pathspec is a pattern] se usa para limitar las rutas en los comandos de Git.

Pathspecs se utilizan en la línea de comandos de “git ls-files”, “git ls-tree”, “git add”, “git grep”, “git diff”, “git checkout” y muchos otros comandos para limitar el alcance de operaciones a algún subconjunto del árbol o árbol de trabajo.

Como ejemplo, el comando git add :/**.ts agregará recursivamente al índice todos los archivos que terminan con .ts empezando por la raíz del repositorio (respetando las diversas formas de ignorar archivos).

  • :/ as git root es muy útil para verificar un archivo sin usar una ruta relativa. TYVM

    – jrwren

    2 de agosto de 2017 a las 21:54

Si desea que los archivos que eliminó también se eliminen en el repositorio, haga git add --all .. Si no desea que se eliminen en el repositorio, haga git add --ignore-removal ..

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad