Un Cuento de Tres Árboles

9375a9529679f1b42b567a640d775e7d?s=47 Scott Chacon
November 05, 2011

Un Cuento de Tres Árboles

Git es el sistema de control de versiones que la mayoría de nosotros usamos cada dia. Sin embargo, Git tiene algunas rarezas. Levanten la mano si realmente comprenden el comando reset. Después de todo, este es uno de los comandos más interesantes, fundamentales y fascinantes que Git tiene, y aun así casi todo el mundo le tiene miedo. Esto es sólo cuestión de mal marketing: Esta charla va a demistificar el comando reset no sólo para que se sientan cómodos usándolo, sino para que puedan hacer nuevas e interesantes cosas con él, y al lograrlo, obtendrán también una mayor comprensión de todo el sistema de Git. Exploraremos los Tres Árboles de Git (HEAD, el índice y el árbol de trabajo) y descubriremos todas las cosas increíbles que se pueden hacer con ellos.

9375a9529679f1b42b567a640d775e7d?s=128

Scott Chacon

November 05, 2011
Tweet

Transcript

  1. 5.
  2. 6.
  3. 8.
  4. 10.

    mi

  5. 16.
  6. 20.
  7. 24.
  8. 25.
  9. 30.
  10. 31.
  11. 32.

    $ tree . !"" README !"" Rakefile #"" lib #""

    git.rb 1 directory, 3 files
  12. 33.
  13. 34.
  14. 35.
  15. 36.
  16. 37.

    git

  17. 49.
  18. 52.
  19. 53.

    $ git ls-tree -r HEAD 100644 blob ad47ff7d328ff27e50bfcd0fb22baa1d680109bb README 100644

    blob 5de1607ba20b3ed555e8f77465d668005d545159 example.rb 100644 blob 6478a3173fd423085ce7685a37ec7fcf49401737 kidgloves.rb $ git ls-files -s 100644 ad47ff7d328ff27e50bfcd0fb22baa1d680109bb 0 README 100644 5de1607ba20b3ed555e8f77465d668005d545159 0 example.rb 100644 6478a3173fd423085ce7685a37ec7fcf49401737 0 kidgloves.rb $ ls -l -rw-r--r-- 1 schacon staff 610 Sep 26 09:38 README -rw-r--r-- 1 schacon staff 209 Sep 26 09:38 example.rb -rw-r--r-- 1 schacon staff 5024 Sep 26 09:38 kidgloves.rb HEAD Índice Directorio de Trabajo
  20. 54.

    $ git ls-tree -r HEAD 100644 blob ad47ff7d328ff27e50bfcd0fb22baa1d680109bb README 100644

    blob 5de1607ba20b3ed555e8f77465d668005d545159 example.rb 100644 blob 6478a3173fd423085ce7685a37ec7fcf49401737 kidgloves.rb $ git ls-files -s 100644 ad47ff7d328ff27e50bfcd0fb22baa1d680109bb 0 README 100644 5de1607ba20b3ed555e8f77465d668005d545159 0 example.rb 100644 6478a3173fd423085ce7685a37ec7fcf49401737 0 kidgloves.rb $ ls -l -rw-r--r-- 1 schacon staff 610 Sep 26 09:38 README -rw-r--r-- 1 schacon staff 209 Sep 26 09:38 example.rb -rw-r--r-- 1 schacon staff 5024 Sep 26 09:38 kidgloves.rb HEAD Índice Directorio de Trabajo
  21. 63.

    funciones de los árboles HEAD el último commit, generador del

    proximo Índice el proximo commit Dir de Trabajo caja de arena
  22. 66.

    $ git status # On branch master # Your branch

    is behind 'origin/master' by 2 commits, # and can be fast-forwarded. # # Changes to be committed: # (use "git reset HEAD ..." to unstage) # # modified: jobs/email_reply.rb # # Changed but not updated: # (use "git add ..." to update what will be committed) # (use "git checkout -- ..." to discard changes # in working directory) # # modified: app/helpers/users_helper.rb # modified: test/unit/email_reply_job_test.rb #
  23. 67.

    $ git status # On branch master # Your branch

    is behind 'origin/master' by 2 commits, # and can be fast-forwarded. # # Changes to be committed: # HEAD and index differ # # modified: jobs/email_reply.rb # # Changed but not updated: # index and working directory differ # # # # modified: app/helpers/users_helper.rb # modified: test/unit/email_reply_job_test.rb #
  24. 68.
  25. 69.
  26. 70.
  27. 71.
  28. 72.
  29. 73.
  30. 74.

    $ git status # On branch master # Your branch

    is behind 'origin/mas # and can be fast-forwarded. # # Changed but not updated: # (use "git add ..." to update wh # (use "git checkout -- ..." to d # in working directory) # # modified: file.txt #
  31. 75.
  32. 76.
  33. 77.

    $ git status # On branch master # Your branch

    is behind 'origin/m # and can be fast-forwarded. # # Changes to be committed: # (use "git reset HEAD ..." to # # modified: file.txt #
  34. 78.
  35. 79.
  36. 80.
  37. 81.
  38. 82.
  39. 83.
  40. 84.
  41. 88.
  42. 89.
  43. 90.
  44. 91.
  45. 96.

    --hard copia al dir de trabajo --soft mueve HEAD al

    objetivo Las Opciones de Reset [--mixed] copia al índice
  46. 100.
  47. 102.
  48. 103.
  49. 104.
  50. 105.
  51. 108.
  52. 109.
  53. 112.
  54. 113.
  55. 118.
  56. 122.

    A B C D git commit -m ‘Yo soy muy

    inteligente’ HEAD master
  57. 123.

    A B C D HEAD master D2 git commit -m

    ‘Yo soy muy inteligente’
  58. 125.
  59. 126.
  60. 127.
  61. 128.
  62. 130.

    commit 04c113569d5eec4fb53b5e35e953159a4c4449ca Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31

    09:05:16 2011 -0700 wip: hmm. guárdelo en cassandra commit 6eae70eee71446c4fb63d897c9feb62d62abc732 Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31 09:01:27 2011 -0700 wip: guárdelo en redis
  63. 131.

    commit 71f6d906b763538d1a146cbf3934af6d19fdc348 Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31

    09:05:20 2011 -0700 wip: maldita sea. tal vez riak? commit 04c113569d5eec4fb53b5e35e953159a4c4449ca Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31 09:05:16 2011 -0700 wip: hmm. guárdelo en cassandra commit 6eae70eee71446c4fb63d897c9feb62d62abc732 Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31 09:01:27 2011 -0700 wip: guárdelo en redis
  64. 132.

    commit 8c9edaee51647f392e20199bfc1bb15c9e221a1a Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31

    09:05:20 2011 -0700 wip: por que coño, riak? ahora, mongodb... commit 71f6d906b763538d1a146cbf3934af6d19fdc348 Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31 09:05:20 2011 -0700 wip: maldita sea. tal vez riak? commit 04c113569d5eec4fb53b5e35e953159a4c4449ca Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31 09:05:16 2011 -0700 wip: hmm. guárdelo en cassandra commit 6eae70eee71446c4fb63d897c9feb62d62abc732 Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31 09:01:27 2011 -0700 wip: guárdelo en redis
  65. 133.

    commit 6eae70eee71446c4fb63d897c9feb62d62abc732 Author: Scott Chacon <schacon@gmail.com> Date: Mon Oct 31

    10:01:27 2011 -0700 solución perfecta en el primer intento: mongodb
  66. 134.

    WIP

  67. 135.
  68. 136.
  69. 141.

    funciones de los árboles HEAD el último commit, generador del

    proximo Índice el proximo commit Dir de Trabajo caja de arena