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 ?
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.md
los 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 pathspec
s. Con git add
, puede agregar solo los archivos dentro de un solo directorio. Con git diff
puede 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 -a
enumerará 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
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).
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 .
.
¿Leíste el mensaje?
– twalberg
30 de diciembre de 2014 a las 20:38
Sí, leí el mensaje. Sugiere el uso de “gitadd -all” . ¿Leíste mi pregunta donde estoy preguntando? Qué es . Estoy seguro de que es muy claro para una persona que conoce git, pero como usuario nuevo, ¿crees que todos sabemos lo que significa ?
– Samantha JT estrella
31 de diciembre de 2014 a las 3:18
@samanthaj Una “especificación de ruta” se refiere a cómo especifica las rutas a las cosas en Git, incluido el uso de comodines. Estos se utilizan en el
.gitignore
archivo, sino también en la línea de comandos (git add *.c
).– jub0bs
31 de diciembre de 2014 a las 3:27
@jubobs – Gracias. Entonces, en este caso, en el que quiero incluir todo, debería simplemente hacer git add -all . o git agregar -todos /?
– Samantha JT estrella
31 de diciembre de 2014 a las 5:09