Herramientas de usuario

Herramientas del sitio


clase:daw:daw:1eval:tema05

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:daw:daw:1eval:tema05 [2024/09/22 20:07]
admin [Stash]
clase:daw:daw:1eval:tema05 [2024/11/14 10:23] (actual)
admin [Stash]
Línea 157: Línea 157:
 También se puede añadir el argumento ''--worktree'' de forma que quede ''git restore --worktree fichero'' pero no es necesario ya que se hace por defecto. Pero si se usara ''--staged'' no se modifica el área de trabajo por defecto y en ese caso sería necesario añadirlo. También se puede añadir el argumento ''--worktree'' de forma que quede ''git restore --worktree fichero'' pero no es necesario ya que se hace por defecto. Pero si se usara ''--staged'' no se modifica el área de trabajo por defecto y en ese caso sería necesario añadirlo.
  
-  ''git restore'' \\ ''fichero''   ''git restore'' \\ ''--staged fichero''  ''git restore'' \\ ''--worktree fichero''  |  ''git restore'' \\ ''--staged --worktree fichero''  | +^    Restaura el fichero en el //área de trabajo//    Restaura el fichero en el //staged area//  
-|  Restaura el fichero en el //área de trabajo//  |  ✓  |    |  ✓  |  ✓  | +| ''git restore fichero''   |  ✓     |  
- Restaura el fichero en el //staged area//    |  ✓  |   ✓  | +''git restore --worktree fichero''  |  ✓  |    | 
 +''git restore --worktree --staged fichero''  |  ✓  |  ✓  | 
 +''git restore --staged fichero''     |  ✓  |
 </note> </note>
  
Línea 271: Línea 272:
   * Para //mergear// lo que hay en la rama ''origin/master'' en la rama ''master''.   * Para //mergear// lo que hay en la rama ''origin/master'' en la rama ''master''.
  
-  git merge origin/master+  git merge --ff-only origin/master
  
 \\ \\
Línea 290: Línea 291:
   * Para añadir un nuevo remote   * Para añadir un nuevo remote
  
-  git remote add otroservidor https://www.otroservidor.com/lgonzalezmislata/prueba.git+  git remote add nombreminuevoremote https://www.otroservidor.com/lgonzalezmislata/prueba.git
  
 Una vez creado el remote ''otroservidor'' ya podremos usarlo en los comandos ''git push'', ''git fetch'' o ''git pull'' además de usar ''origin'' Una vez creado el remote ''otroservidor'' ya podremos usarlo en los comandos ''git push'', ''git fetch'' o ''git pull'' además de usar ''origin''
Línea 387: Línea 388:
   * [[https://styde.net/deshaciendo-cosas-en-git/|Deshaciendo cosas en Git]]   * [[https://styde.net/deshaciendo-cosas-en-git/|Deshaciendo cosas en Git]]
   * [[https://devconnected.com/how-to-git-reset-to-head/|How To Git Reset to HEAD]]   * [[https://devconnected.com/how-to-git-reset-to-head/|How To Git Reset to HEAD]]
 +
 +===== Deshacer commits =====
 +Una vez que hemos subido un commit a GitHub es una muy mala práctica borrar un commit sin embargo si queremos deshacer algo , podemos usar ''git revert <commit>''.
 +
 +
 +  * Se hace un nuevo commit que deshace el último commit
 +
 +  git revert HEAD~1
 +
 +  * Prepara un nuevo commit que deshace el último commit pero sin realmente hacer el commit. Lo que hace el modificar los ficheros y añadirlos a la //staged area//.Después se hace el commit. 
 +
 +
 +  git revert --no-commit HEAD~1
 +  git commit -am "Mensaje de commit"
 +
 +
 +<note tip>La opción ''--no-commit'' es útil porque nos permite revisar que va a hacer el commit y nos permite hacer alguna modificación más.
 +
 +Si no estamos interesados en hacer el commit lo podemos abortar con ''git revert --abort'' o usar el ya conocido ''git restore --staged --worktree fichero''.
 +</note>
 +
 +<note important>
 +En caso de un conflicto se deberá resolver el conflicto en el fichero, hacer el ''git add <fichero>'' y por último ya hacer el commit.
 +</note>
 +
 +
 +<note tip>
 +La diferencia entre ''git revert'' y ''git reset'' es que ''git revert'' crea un nuevo commit que deshace el trabajo de otro commit , mientras que ''git reset'' borra realmente los commits.
 +
 +
 +
 +  * Estado inicial de
 +
 +<flow>
 +%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {  'git0': '#6D97CA','git1': '#00ffff' }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'master','rotateCommitLabel': false}} }%%
 +gitGraph
 + commit id: "A"
 + commit id: "B"
 + commit id: "C"
 +</flow>
 +
 +  * Si hacemos un ''git revert C'' quedará así
 +
 +<flow>
 +%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {  'git0': '#6D97CA','git1': '#00ffff' }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'master','rotateCommitLabel': false}} }%%
 +gitGraph
 + commit id: "A"
 + commit id: "B"
 + commit id: "C"
 + commit id: "Revert C"
 +</flow>
 +
 +
 +  * Si hacemos un ''git reset --hard B'' quedará así
 +
 +<flow>
 +%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {  'git0': '#6D97CA','git1': '#00ffff' }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'master','rotateCommitLabel': false}} }%%
 +gitGraph
 + commit id: "A"
 + commit id: "B"
 +</flow>
 +
 +
 +
 +</note>
 +
 +
 +
  
 ===== Moverse por git ===== ===== Moverse por git =====
Línea 473: Línea 542:
 | Los ficheros modificados (estén o no en el //staged area// |  ✓  |  ✓  |  ✓  | | Los ficheros modificados (estén o no en el //staged area// |  ✓  |  ✓  |  ✓  |
 | Los ficheros nuevos |    |  ✓  |  ✓  | | Los ficheros nuevos |    |  ✓  |  ✓  |
-| Los ficheros los ignorados |    |    |  ✓  |+| Los ficheros ignorados |    |    |  ✓  |
  
  
  
 Y si luego queremos recuperar los cambios se hace con: Y si luego queremos recuperar los cambios se hace con:
 +
 +<sxh bash>
 +git stash pop 
 +</sxh>
 +
 +  * Pero en el caso de hubiera algo en el //staged area// se tendría que hacer con el argumento ''--index'' para que restaure el //staged area//
  
 <sxh bash> <sxh bash>
Línea 483: Línea 558:
 </sxh> </sxh>
  
-<note tip> 
-Si no se añade ''--index'', no se restaurará el //staged area//. 
-</note> 
 ===== Log ===== ===== Log =====
 El comando ''git log'' permite ver el histórico de commits El comando ''git log'' permite ver el histórico de commits
clase/daw/daw/1eval/tema05.1727028426.txt.gz · Última modificación: 2024/09/22 20:07 por admin