Herramientas de usuario

Herramientas del sitio


clase:daw:daw:2eval:tema06

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:2eval:tema06 [2021/12/14 19:47]
admin [Conflictos]
clase:daw:daw:2eval:tema06 [2025/04/13 10:37] (actual)
admin [6. Control de Versiones Avanzado]
Línea 6: Línea 6:
   * [[https://learngitbranching.js.org/|Git Branching: Aprender Jugando con ramas en Git]]: Permite probar Git con ejemplos interactivos   * [[https://learngitbranching.js.org/|Git Branching: Aprender Jugando con ramas en Git]]: Permite probar Git con ejemplos interactivos
   * [[https://www.youtube.com/watch?v=mxoSIF-Qm7g|17 Ways to Undo Mistakes with Git]]   * [[https://www.youtube.com/watch?v=mxoSIF-Qm7g|17 Ways to Undo Mistakes with Git]]
 +  * [[https://craftquest.io/guides/git/how-git-works/the-plumbing|The Plumbing Guide]]: Comandos de bajo nivel de Git
  
  
Línea 14: Línea 15:
 {{:clase:daw:daw:1eval:git-flow.png?600|}} {{:clase:daw:daw:1eval:git-flow.png?600|}}
  
 +{{:clase:daw:daw:2eval:drinkinggame.jpg|}}
  
 Ejemplo de Ramas Ejemplo de Ramas
Línea 52: Línea 54:
 <sxh bash> <sxh bash>
   git branch nuevaRama   git branch nuevaRama
-  git checkout nuevaRama +  git switch nuevaRama 
-  git push -u origin nuevaRama+  git push --set-upstream origin nuevaRama 
 +  git push -u             origin nuevaRama
  
 </sxh> </sxh>
Línea 62: Línea 65:
 <sxh bash> <sxh bash>
   git fetch --prune      git fetch --prune   
-  git checkout nuevaRama+  git switch nuevaRama
  
 </sxh> </sxh>
 <note tip> <note tip>
   * ''fetch'':Se pone ''--prune'' , para que borre las referencias locales de ramas remotas que ya no están.   * ''fetch'':Se pone ''--prune'' , para que borre las referencias locales de ramas remotas que ya no están.
-  * ''checkout'': Por defecto al cambiar a la nueva rama ya se hace un ''--track'' a ''origin/nuevaRama''+  * ''switch'': Por defecto al cambiar a la nueva rama ya se hace un ''--track'' a ''origin/nuevaRama''
 </note> </note>
  
Línea 76: Línea 79:
  
 <sxh bash> <sxh bash>
-  git branch -d miRama 
   git branch --delete miRama   git branch --delete miRama
 +  git branch -d miRama
 </sxh> </sxh>
  
Línea 86: Línea 89:
  
 <sxh bash> <sxh bash>
-  git branch -d -f      miRama 
   git branch --delete --force miRama   git branch --delete --force miRama
 +  git branch -d -f      miRama
   git branch -D         miRama   git branch -D         miRama
 </sxh> </sxh>
Línea 124: Línea 127:
  
 Se usa para poner los commits de  origin/develop en nuestra develop de antes que lo de develop porque hay commits distintos en cada rama pero del mismo commit origen Se usa para poner los commits de  origin/develop en nuestra develop de antes que lo de develop porque hay commits distintos en cada rama pero del mismo commit origen
- 
  
 {{:clase:daw:daw:2eval:rebase.png?direct|}} {{:clase:daw:daw:2eval:rebase.png?direct|}}
 +
 +
 +''git commit -m "E"''
 +<flow>
 +%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {  'git0': '#6D97CA','git1': '#00ffff' }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'origin/develop','rotateCommitLabel': false}} }%%
 +gitGraph
 + commit id: "A"
 + commit id: "B"
 + branch develop
 + commit id: "E"
 +
 +
 +</flow>
  
 \\ \\
 +''git fetch --prune''
 +<flow>
 +%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {  'git0': '#6D97CA','git1': '#00ffff' }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'origin/develop','rotateCommitLabel': false}} }%%
 +gitGraph
 + commit id: "A"
 + commit id: "B"
 + branch develop
 + commit id: "E"
 + checkout origin/develop
 + commit id: "C"
 + commit id: "D"
 +
 +
 +</flow>
 +
 +\\
 +'' git switch develop''
 +\\
 +''git rebase origin/develop''
 +<flow>
 +%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {  'git0': '#6D97CA','git1': '#00ffff' }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'origin/develop','rotateCommitLabel': false}} }%%
 +gitGraph
 + commit id: "A"
 + commit id: "B"
 + commit id: "C"
 + commit id: "D"
 + branch develop
 + commit id: "E"
 + checkout origin/develop
 +
 +
 +</flow>
  
 ==== git merge --squash rama ==== ==== git merge --squash rama ====
Línea 147: Línea 194:
  
 \\ \\
 +
 +<flow>
 +%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {  'git0': '#6D97CA','git1': '#00ffff' }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'develop','rotateCommitLabel': false}} }%%
 +gitGraph
 + commit id: "A"
 + commit id: "B"
 + commit id: "C"
 + commit id: "D"
 +</flow>
 +
 +\\
 +''git fetch --prune''
 +<flow>
 +%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {  'git0': '#6D97CA','git1': '#00ffff' }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'develop','rotateCommitLabel': false}} }%%
 +gitGraph
 + commit id: "A"
 + commit id: "B"
 + commit id: "C"
 + commit id: "D"
 + branch origin/develop
 + commit id: "E"
 + commit id: "F"
 +</flow>
 +
 +
 +\\
 +''git merge --ff-only origin/develop''
 +<flow>
 +%%{init: { 'logLevel': 'debug', 'theme': 'default','themeVariables': {  'git0': '#6D97CA','git1': '#00ffff' }, 'gitGraph': {'showBranches': true, 'showCommitLabel':true,'mainBranchName': 'develop y origin/develop','rotateCommitLabel': false}} }%%
 +gitGraph
 + commit id: "A"
 + commit id: "B"
 + commit id: "C"
 + commit id: "D"
 + commit id: "E"
 + commit id: "F" 
 +</flow>
 +
  
 ==== git merge rama ==== ==== git merge rama ====
Línea 162: Línea 247:
 <sxh bash> <sxh bash>
   git fetch --prune   git fetch --prune
-  git checkout develop+  git switch develop
   git merge --ff-only origin/develop   git merge --ff-only origin/develop
  
   git fetch --prune   git fetch --prune
-  git checkout release+  git switch release
   git merge --ff-only origin/release   git merge --ff-only origin/release
  
   git fetch --prune   git fetch --prune
-  git checkout master+  git switch master
   git merge --ff-only origin/master   git merge --ff-only origin/master
 </sxh> </sxh>
Línea 181: Línea 266:
  
 <sxh bash> <sxh bash>
-  git checkout release+  git switch release
   git merge --ff-only develop   git merge --ff-only develop
  
-  git checkout master+  git switch master
   git merge --ff-only release   git merge --ff-only release
 </sxh> </sxh>
Línea 196: Línea 281:
 <sxh bash> <sxh bash>
   git fetch --prune   git fetch --prune
-  git checkout develop+  git switch develop
   git rebase origin/develop   git rebase origin/develop
 </sxh> </sxh>
Línea 218: Línea 303:
  
 <sxh bash> <sxh bash>
-  git checkout develop+  git switch develop
   git merge  --squash lorenzo_42   git merge  --squash lorenzo_42
   git commit -am "feat(#42):pantalla de Login"   git commit -am "feat(#42):pantalla de Login"
Línea 232: Línea 317:
  
 <sxh bash> <sxh bash>
-  git checkout lorenzo_42+  git switch lorenzo_42
   git merge develop   git merge develop
  
Línea 362: Línea 447:
  
 <sxh bash> <sxh bash>
-git checkout develop+git switch develop
 git rebase origin/develop git rebase origin/develop
 vi index.html  #Arreglar el conflicto vi index.html  #Arreglar el conflicto
Línea 392: Línea 477:
  
 <sxh bash> <sxh bash>
-git checkout develop+git switch develop
 git merge --squash Lorenzo_3 git merge --squash Lorenzo_3
 vi index.html  #Arreglar el conflicto vi index.html  #Arreglar el conflicto
Línea 432: Línea 517:
  
 <sxh bash> <sxh bash>
-git checkout Lorenzo_3+git switch Lorenzo_3
 git merge develop git merge develop
 vi index.html  #Arreglar el conflicto vi index.html  #Arreglar el conflicto
Línea 440: Línea 525:
 \\ \\
  
-===== Stash ===== 
-Hay veces que queremos guardar temporalmente los cambios para despues volver a ellos, por ejemplo si queremos cambiar de rama. 
- 
-git contiene una orden para hacer eso: 
-<sxh bash> 
-git stash 
-</sxh> 
- 
-Y si luego queremos recuperar los cambios se hace con: 
- 
-<sxh bash> 
-git stash pop 
-</sxh> 
  
 ===== Recetas ===== ===== Recetas =====
Línea 459: Línea 531:
  
 <sxh bash> <sxh bash>
-git fetch --prune && git checkout develop && git merge --ff-only origin/develop && git checkout release && git merge --ff-only origin/release && git checkout master && git merge --ff-only origin/master && git checkout develop+git fetch --prune && git switch develop && git merge --ff-only origin/develop && git switch release && git merge --ff-only origin/release && git switch master && git merge --ff-only origin/master && git switch develop
 </sxh> </sxh>
  
Línea 465: Línea 537:
  
 <sxh bash> <sxh bash>
-git checkout release && git merge --ff-only develop && git checkout master && git merge --ff-only release && git checkout develop+git switch release && git merge --ff-only develop && git switch master && git merge --ff-only release && git switch develop
 </sxh> </sxh>
  
Línea 471: Línea 543:
  
 <sxh bash> <sxh bash>
-git checkout master && git push && git checkout release && git push && git checkout develop && git push+git switch master && git push && git switch release && git push && git switch develop && git push
 </sxh> </sxh>
  
  
 +  * Proceso completo para hacer una modificacion en la propia rama y ponerla en develop
  
 +<sxh bash>
 +#Día 1:Lunes
 +git fetch --prune && git switch develop && git merge --ff-only origin/develop && git switch release && git merge --ff-only origin/release && git switch master && git merge --ff-only origin/master && git switch develop
 +git branch lorenzo_45
 +git switch lorenzo_45
 +git push --set-upstream origin lorenzo_45
 +git commit -m "micro-commit-dia-1-a"
 +git commit -m "micro-commit-dia-1-b"
 +git push
 +
 +#Día 2:Martes
 +git fetch --prune && git switch develop && git merge --ff-only origin/develop && git switch release && git merge --ff-only origin/release && git switch master && git merge --ff-only origin/master && git switch develop
 +git switch lorenzo_45
 +git merge develop
 +git commit -m "micro-commit-dia-2-a"
 +git commit -m "micro-commit-dia-2-b"
 +git commit -m "micro-commit-dia-2-c"
 +git push
 +
 +#Día 3:Miercoles
 +git fetch --prune && git switch develop && git merge --ff-only origin/develop && git switch release && git merge --ff-only origin/release && git switch master && git merge --ff-only origin/master && git switch develop
 +git switch lorenzo_45
 +git merge develop
 +git commit -m "micro-commit-dia-3-a"
 +git commit -m "micro-commit-dia-3-b"
 +git commit -m "micro-commit-dia-3-c"
 +git push
 +
 +
 +#Día 4: Jueves
 +git fetch --prune && git switch develop && git merge --ff-only origin/develop && git switch release && git merge --ff-only origin/release && git switch master && git merge --ff-only origin/master && git switch develop
 +git switch lorenzo_45
 +git merge develop
 +git commit -m "micro-commit-dia-4-a"
 +git commit -m "micro-commit-dia-4-b"
 +git commit -m "micro-commit-dia-4-c"
 +git push
 +
 +
 +#Día 5: Viernes
 +git fetch --prune && git switch develop && git merge --ff-only origin/develop && git switch release && git merge --ff-only origin/release && git switch master && git merge --ff-only origin/master && git switch develop
 +git switch lorenzo_45
 +git merge develop
 +
 +git switch develop
 +git merge --squash lorenzo_45
 +git commit -am "feat(#45):Crear la pantalla de login"
 +git push
 +#Si falla el push hacer el fetch y rebase
 +git fetch --prune 
 +git rebase origin/develop
 +git push 
 +
 +git push origin --delete lorenzo_45
 +git branch --delete --force lorenzo_45
 +
 +</sxh>
  
  
clase/daw/daw/2eval/tema06.1639507672.txt.gz · Última modificación: 2021/12/14 19:47 por admin