wayfarer 0.4.7 → 0.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (773) hide show
  1. checksums.yaml +4 -4
  2. data/.env +17 -0
  3. data/.github/workflows/lint.yaml +8 -6
  4. data/.github/workflows/release.yaml +2 -3
  5. data/.github/workflows/tests.yaml +5 -14
  6. data/.gitignore +2 -2
  7. data/.rubocop.yml +31 -0
  8. data/.vale.ini +6 -3
  9. data/Dockerfile +3 -2
  10. data/Gemfile +21 -0
  11. data/Gemfile.lock +233 -128
  12. data/Rakefile +7 -0
  13. data/docker-compose.yml +13 -14
  14. data/docs/guides/callbacks.md +3 -1
  15. data/docs/guides/configuration.md +10 -35
  16. data/docs/guides/development.md +67 -0
  17. data/docs/guides/handlers.md +7 -7
  18. data/docs/guides/jobs.md +54 -11
  19. data/docs/guides/networking/custom_adapters.md +109 -81
  20. data/docs/guides/networking/http.md +1 -1
  21. data/docs/guides/pages.md +24 -22
  22. data/docs/guides/routing.md +116 -34
  23. data/docs/guides/tasks.md +30 -10
  24. data/docs/guides/tutorial.md +23 -17
  25. data/docs/guides/user_agents.md +11 -9
  26. data/lib/wayfarer/base.rb +9 -8
  27. data/lib/wayfarer/batch_completion.rb +18 -14
  28. data/lib/wayfarer/callbacks.rb +14 -14
  29. data/lib/wayfarer/cli/route_printer.rb +78 -96
  30. data/lib/wayfarer/cli.rb +12 -30
  31. data/lib/wayfarer/gc.rb +6 -1
  32. data/lib/wayfarer/kv.rb +28 -0
  33. data/lib/wayfarer/middleware/base.rb +0 -4
  34. data/lib/wayfarer/middleware/chain.rb +7 -1
  35. data/lib/wayfarer/middleware/content_type.rb +20 -15
  36. data/lib/wayfarer/middleware/controller.rb +1 -1
  37. data/lib/wayfarer/middleware/dedup.rb +9 -3
  38. data/lib/wayfarer/middleware/dispatch.rb +7 -2
  39. data/lib/wayfarer/middleware/normalize.rb +4 -12
  40. data/lib/wayfarer/middleware/router.rb +1 -1
  41. data/lib/wayfarer/middleware/uri_parser.rb +4 -3
  42. data/lib/wayfarer/networking/context.rb +13 -2
  43. data/lib/wayfarer/networking/ferrum.rb +2 -5
  44. data/lib/wayfarer/networking/follow.rb +2 -1
  45. data/lib/wayfarer/networking/pool.rb +11 -12
  46. data/lib/wayfarer/networking/selenium.rb +15 -7
  47. data/lib/wayfarer/networking/strategy.rb +6 -2
  48. data/lib/wayfarer/page.rb +0 -2
  49. data/lib/wayfarer/parsing/xml.rb +1 -1
  50. data/lib/wayfarer/parsing.rb +2 -5
  51. data/lib/wayfarer/redis/barrier.rb +15 -2
  52. data/lib/wayfarer/redis/counter.rb +1 -2
  53. data/lib/wayfarer/routing/dsl.rb +166 -31
  54. data/lib/wayfarer/routing/hash_stack.rb +33 -0
  55. data/lib/wayfarer/routing/matchers/custom.rb +8 -5
  56. data/lib/wayfarer/routing/matchers/{suffix.rb → empty_params.rb} +2 -6
  57. data/lib/wayfarer/routing/matchers/host.rb +15 -9
  58. data/lib/wayfarer/routing/matchers/path.rb +11 -33
  59. data/lib/wayfarer/routing/matchers/query.rb +41 -17
  60. data/lib/wayfarer/routing/matchers/result.rb +12 -0
  61. data/lib/wayfarer/routing/matchers/scheme.rb +13 -5
  62. data/lib/wayfarer/routing/matchers/url.rb +13 -5
  63. data/lib/wayfarer/routing/path_consumer.rb +130 -0
  64. data/lib/wayfarer/routing/path_finder.rb +151 -23
  65. data/lib/wayfarer/routing/result.rb +1 -1
  66. data/lib/wayfarer/routing/root_route.rb +14 -2
  67. data/lib/wayfarer/routing/route.rb +71 -14
  68. data/lib/wayfarer/routing/serializable.rb +28 -0
  69. data/lib/wayfarer/routing/sub_route.rb +53 -0
  70. data/lib/wayfarer/routing/target_route.rb +17 -1
  71. data/lib/wayfarer/stringify.rb +1 -2
  72. data/lib/wayfarer/task.rb +3 -5
  73. data/lib/wayfarer/uri/normalization.rb +120 -0
  74. data/lib/wayfarer.rb +55 -10
  75. data/mise.toml +2 -0
  76. data/mkdocs.yml +8 -17
  77. data/rake/lint.rake +0 -96
  78. data/rake/release.rake +1 -13
  79. data/rake/tests.rake +8 -4
  80. data/requirements.txt +1 -1
  81. data/spec/factories/job.rb +8 -0
  82. data/spec/factories/middleware.rb +2 -2
  83. data/spec/factories/path_finder.rb +11 -0
  84. data/spec/factories/redis.rb +19 -0
  85. data/spec/factories/task.rb +39 -1
  86. data/spec/spec_helpers.rb +50 -57
  87. data/spec/support/active_job_helpers.rb +8 -0
  88. data/spec/support/integration_helpers.rb +21 -0
  89. data/spec/support/redis_helpers.rb +9 -0
  90. data/spec/support/test_app.rb +64 -43
  91. data/spec/{base_spec.rb → wayfarer/base_spec.rb} +32 -36
  92. data/spec/wayfarer/batch_completion_spec.rb +142 -0
  93. data/spec/wayfarer/cli/job_spec.rb +88 -0
  94. data/spec/wayfarer/cli/routing_spec.rb +322 -0
  95. data/spec/{cli → wayfarer/cli}/version_spec.rb +1 -1
  96. data/spec/wayfarer/gc_spec.rb +29 -0
  97. data/spec/{handler_spec.rb → wayfarer/handler_spec.rb} +1 -3
  98. data/spec/{integration → wayfarer/integration}/callbacks_spec.rb +9 -6
  99. data/spec/wayfarer/integration/content_type_spec.rb +37 -0
  100. data/spec/wayfarer/integration/custom_routing_spec.rb +51 -0
  101. data/spec/{integration → wayfarer/integration}/gc_spec.rb +9 -13
  102. data/spec/{integration → wayfarer/integration}/handler_spec.rb +9 -10
  103. data/spec/{integration → wayfarer/integration}/page_spec.rb +16 -14
  104. data/spec/{integration → wayfarer/integration}/params_spec.rb +4 -4
  105. data/spec/{integration → wayfarer/integration}/parsing_spec.rb +7 -32
  106. data/spec/wayfarer/integration/retry_spec.rb +112 -0
  107. data/spec/{integration → wayfarer/integration}/stage_spec.rb +6 -6
  108. data/spec/{middleware → wayfarer/middleware}/batch_completion_spec.rb +4 -5
  109. data/spec/{middleware → wayfarer/middleware}/chain_spec.rb +20 -15
  110. data/spec/{middleware → wayfarer/middleware}/content_type_spec.rb +18 -21
  111. data/spec/{middleware → wayfarer/middleware}/controller_spec.rb +25 -24
  112. data/spec/wayfarer/middleware/dedup_spec.rb +66 -0
  113. data/spec/wayfarer/middleware/normalize_spec.rb +32 -0
  114. data/spec/{middleware → wayfarer/middleware}/router_spec.rb +18 -20
  115. data/spec/{middleware → wayfarer/middleware}/stage_spec.rb +11 -10
  116. data/spec/wayfarer/middleware/uri_parser_spec.rb +63 -0
  117. data/spec/{middleware → wayfarer/middleware}/user_agent_spec.rb +34 -32
  118. data/spec/wayfarer/networking/capybara_spec.rb +13 -0
  119. data/spec/{networking → wayfarer/networking}/context_spec.rb +47 -38
  120. data/spec/wayfarer/networking/ferrum_spec.rb +13 -0
  121. data/spec/{networking → wayfarer/networking}/follow_spec.rb +9 -4
  122. data/spec/wayfarer/networking/http_spec.rb +12 -0
  123. data/spec/{networking → wayfarer/networking}/pool_spec.rb +11 -9
  124. data/spec/wayfarer/networking/selenium_spec.rb +12 -0
  125. data/spec/{networking → wayfarer/networking}/strategy.rb +35 -56
  126. data/spec/{page_spec.rb → wayfarer/page_spec.rb} +3 -3
  127. data/spec/{parsing → wayfarer/parsing}/json_spec.rb +1 -1
  128. data/spec/{parsing/xml_spec.rb → wayfarer/parsing/xml_parse_spec.rb} +4 -3
  129. data/spec/{redis → wayfarer/redis}/barrier_spec.rb +5 -4
  130. data/spec/wayfarer/redis/counter_spec.rb +34 -0
  131. data/spec/{redis → wayfarer/redis}/pool_spec.rb +3 -2
  132. data/spec/{routing → wayfarer/routing}/dsl_spec.rb +12 -22
  133. data/spec/wayfarer/routing/hash_stack_spec.rb +63 -0
  134. data/spec/wayfarer/routing/integration_spec.rb +101 -0
  135. data/spec/wayfarer/routing/matchers/custom_spec.rb +39 -0
  136. data/spec/wayfarer/routing/matchers/host_spec.rb +56 -0
  137. data/spec/wayfarer/routing/matchers/matcher.rb +17 -0
  138. data/spec/wayfarer/routing/matchers/path_spec.rb +43 -0
  139. data/spec/wayfarer/routing/matchers/query_spec.rb +123 -0
  140. data/spec/wayfarer/routing/matchers/scheme_spec.rb +45 -0
  141. data/spec/wayfarer/routing/matchers/url_spec.rb +33 -0
  142. data/spec/wayfarer/routing/path_consumer_spec.rb +123 -0
  143. data/spec/wayfarer/routing/path_finder_spec.rb +409 -0
  144. data/spec/wayfarer/routing/root_route_spec.rb +51 -0
  145. data/spec/wayfarer/routing/route_spec.rb +74 -0
  146. data/spec/wayfarer/routing/sub_route_spec.rb +103 -0
  147. data/spec/wayfarer/uri/normalization_spec.rb +98 -0
  148. data/spec/wayfarer_spec.rb +2 -2
  149. data/wayfarer.gemspec +17 -28
  150. metadata +183 -832
  151. data/.rbenv-gemsets +0 -1
  152. data/.ruby-version +0 -1
  153. data/RELEASING.md +0 -17
  154. data/docs/cookbook/user_agent.md +0 -7
  155. data/docs/design.md +0 -36
  156. data/docs/guides/jobs/error_handling.md +0 -40
  157. data/docs/reference/configuration.md +0 -36
  158. data/lib/wayfarer/middleware/lazy.rb +0 -11
  159. data/spec/batch_completion_spec.rb +0 -104
  160. data/spec/cli/job_spec.rb +0 -74
  161. data/spec/cli/routing_spec.rb +0 -101
  162. data/spec/fixtures/dummy_job.rb +0 -9
  163. data/spec/gc_spec.rb +0 -17
  164. data/spec/integration/content_type_spec.rb +0 -145
  165. data/spec/integration/routing_spec.rb +0 -18
  166. data/spec/middleware/dedup_spec.rb +0 -71
  167. data/spec/middleware/dispatch_spec.rb +0 -59
  168. data/spec/middleware/normalize_spec.rb +0 -60
  169. data/spec/middleware/uri_parser_spec.rb +0 -53
  170. data/spec/networking/capybara_spec.rb +0 -12
  171. data/spec/networking/ferrum_spec.rb +0 -12
  172. data/spec/networking/http_spec.rb +0 -12
  173. data/spec/networking/selenium_spec.rb +0 -12
  174. data/spec/redis/counter_spec.rb +0 -44
  175. data/spec/routing/integration_spec.rb +0 -110
  176. data/spec/routing/matchers/custom_spec.rb +0 -31
  177. data/spec/routing/matchers/host_spec.rb +0 -49
  178. data/spec/routing/matchers/path_spec.rb +0 -43
  179. data/spec/routing/matchers/query_spec.rb +0 -137
  180. data/spec/routing/matchers/scheme_spec.rb +0 -25
  181. data/spec/routing/matchers/suffix_spec.rb +0 -41
  182. data/spec/routing/matchers/uri_spec.rb +0 -27
  183. data/spec/routing/path_finder_spec.rb +0 -33
  184. data/spec/routing/root_route_spec.rb +0 -29
  185. data/spec/routing/route_spec.rb +0 -43
  186. data/spec/support/static/git-scm.com/assets/application-38b0d42ff05ffea45841edebbd14b75b89585646153808e82907c2c5c11f324b.js +0 -772
  187. data/spec/support/static/git-scm.com/assets/application-cafcf280f67db0e6d8168ba98a38da878769a9d5f37793b68ffb963a02d185e0.css +0 -1
  188. data/spec/support/static/git-scm.com/assets/modernize-b3ebe0c31c24f230dc62179d3e1030d2e57a53b1668d9382c0a27dbd44a94beb.js +0 -20
  189. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Bash.html +0 -751
  190. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-PowerShell.html +0 -804
  191. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Sublime-Text.html +0 -728
  192. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Visual-Studio-Code.html +0 -751
  193. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Visual-Studio.html +0 -740
  194. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Zsh.html +0 -765
  195. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Graphical-Interfaces.html +0 -931
  196. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Summary.html +0 -702
  197. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-Command-line-Git.html +0 -720
  198. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-Dulwich.html +0 -746
  199. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-JGit.html +0 -889
  200. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-Libgit2.html +0 -1003
  201. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-go-git.html +0 -792
  202. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Administration.html +0 -745
  203. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Basic-Snapshotting.html +0 -840
  204. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Branching-and-Merging.html +0 -829
  205. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Debugging.html +0 -731
  206. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Email.html +0 -766
  207. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-External-Systems.html +0 -721
  208. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Getting-and-Creating-Projects.html +0 -746
  209. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Inspection-and-Comparison.html +0 -735
  210. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Patching.html +0 -742
  211. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Plumbing-Commands.html +0 -715
  212. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Setup-and-Config.html +0 -863
  213. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Sharing-and-Updating-Projects.html +0 -802
  214. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy.html +0 -1200
  215. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Git-Attributes.html +0 -1134
  216. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Git-Configuration.html +0 -1315
  217. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Git-Hooks.html +0 -876
  218. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Summary.html +0 -704
  219. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project.html +0 -1667
  220. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows.html +0 -859
  221. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project.html +0 -1354
  222. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Summary.html +0 -704
  223. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-A-Short-History-of-Git.html +0 -735
  224. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-About-Version-Control.html +0 -783
  225. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup.html +0 -889
  226. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-Getting-Help.html +0 -750
  227. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-Installing-Git.html +0 -879
  228. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-Summary.html +0 -704
  229. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-The-Command-Line.html +0 -711
  230. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-What-is-Git?.html +0 -857
  231. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository.html +0 -816
  232. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Git-Aliases.html +0 -775
  233. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository.html +0 -1432
  234. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Summary.html +0 -703
  235. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Tagging.html +0 -1049
  236. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Undoing-Things.html +0 -998
  237. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History.html +0 -1172
  238. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes.html +0 -983
  239. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging.html +0 -1102
  240. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Branch-Management.html +0 -946
  241. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell.html +0 -1020
  242. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Branching-Workflows.html +0 -786
  243. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Rebasing.html +0 -1028
  244. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Remote-Branches.html +0 -1009
  245. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Summary.html +0 -705
  246. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Environment-Variables.html +0 -1009
  247. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Git-Objects.html +0 -1209
  248. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Git-References.html +0 -939
  249. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery.html +0 -1086
  250. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Packfiles.html +0 -876
  251. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain.html +0 -745
  252. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Summary.html +0 -708
  253. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-The-Refspec.html +0 -872
  254. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Transfer-Protocols.html +0 -1043
  255. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Advanced-Merging.html +0 -1605
  256. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Bundling.html +0 -888
  257. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Credential-Storage.html +0 -1035
  258. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git.html +0 -861
  259. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Interactive-Staging.html +0 -920
  260. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Replace.html +0 -949
  261. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Rerere.html +0 -983
  262. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Reset-Demystified.html +0 -1236
  263. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Revision-Selection.html +0 -1178
  264. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Rewriting-History.html +0 -1182
  265. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Searching.html +0 -875
  266. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work.html +0 -922
  267. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Stashing-and-Cleaning.html +0 -1039
  268. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Submodules.html +0 -1864
  269. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Summary.html +0 -705
  270. data/spec/support/static/git-scm.com/book/en/v2/Git-and-Other-Systems-Git-as-a-Client.html +0 -2656
  271. data/spec/support/static/git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git.html +0 -1741
  272. data/spec/support/static/git-scm.com/book/en/v2/Git-and-Other-Systems-Summary.html +0 -703
  273. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Key.html +0 -759
  274. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server.html +0 -827
  275. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Git-Daemon.html +0 -775
  276. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-GitLab.html +0 -872
  277. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-GitWeb.html +0 -776
  278. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server.html +0 -870
  279. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Smart-HTTP.html +0 -789
  280. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Summary.html +0 -709
  281. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols.html +0 -963
  282. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Third-Party-Hosted-Options.html +0 -711
  283. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Account-Setup-and-Configuration.html +0 -858
  284. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project.html +0 -1502
  285. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Maintaining-a-Project.html +0 -1218
  286. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Managing-an-organization.html +0 -797
  287. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Scripting-GitHub.html +0 -1059
  288. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Summary.html +0 -704
  289. data/spec/support/static/git-scm.com/book/en/v2/ch00/_abort_merge.html +0 -1605
  290. data/spec/support/static/git-scm.com/book/en/v2/ch00/_add_email_addresses.html +0 -858
  291. data/spec/support/static/git-scm.com/book/en/v2/ch00/_advanced_merging.html +0 -1605
  292. data/spec/support/static/git-scm.com/book/en/v2/ch00/_an_example_git_enforced_policy.html +0 -1200
  293. data/spec/support/static/git-scm.com/book/en/v2/ch00/_annotated_tags.html +0 -1049
  294. data/spec/support/static/git-scm.com/book/en/v2/ch00/_api_comment.html +0 -1059
  295. data/spec/support/static/git-scm.com/book/en/v2/ch00/_bare_repo.html +0 -827
  296. data/spec/support/static/git-scm.com/book/en/v2/ch00/_basic_branching.html +0 -1102
  297. data/spec/support/static/git-scm.com/book/en/v2/ch00/_basic_merge_conflicts.html +0 -1102
  298. data/spec/support/static/git-scm.com/book/en/v2/ch00/_basic_merging.html +0 -1102
  299. data/spec/support/static/git-scm.com/book/en/v2/ch00/_binary_search.html +0 -861
  300. data/spec/support/static/git-scm.com/book/en/v2/ch00/_branch_management.html +0 -946
  301. data/spec/support/static/git-scm.com/book/en/v2/ch00/_branch_references.html +0 -1178
  302. data/spec/support/static/git-scm.com/book/en/v2/ch00/_build_number.html +0 -1354
  303. data/spec/support/static/git-scm.com/book/en/v2/ch00/_bundling.html +0 -888
  304. data/spec/support/static/git-scm.com/book/en/v2/ch00/_changing_multiple.html +0 -1182
  305. data/spec/support/static/git-scm.com/book/en/v2/ch00/_checking_out_conflicts.html +0 -1605
  306. data/spec/support/static/git-scm.com/book/en/v2/ch00/_checking_out_remotes.html +0 -1354
  307. data/spec/support/static/git-scm.com/book/en/v2/ch00/_checking_status.html +0 -1432
  308. data/spec/support/static/git-scm.com/book/en/v2/ch00/_cloning_submodules.html +0 -1864
  309. data/spec/support/static/git-scm.com/book/en/v2/ch00/_commit_guidelines.html +0 -1667
  310. data/spec/support/static/git-scm.com/book/en/v2/ch00/_commit_ranges.html +0 -1178
  311. data/spec/support/static/git-scm.com/book/en/v2/ch00/_commit_status.html +0 -1059
  312. data/spec/support/static/git-scm.com/book/en/v2/ch00/_committing_changes.html +0 -1432
  313. data/spec/support/static/git-scm.com/book/en/v2/ch00/_contrib_file.html +0 -1218
  314. data/spec/support/static/git-scm.com/book/en/v2/ch00/_contributing_project.html +0 -1667
  315. data/spec/support/static/git-scm.com/book/en/v2/ch00/_create_new_branch.html +0 -1020
  316. data/spec/support/static/git-scm.com/book/en/v2/ch00/_credential_caching.html +0 -1035
  317. data/spec/support/static/git-scm.com/book/en/v2/ch00/_custom_importer.html +0 -1741
  318. data/spec/support/static/git-scm.com/book/en/v2/ch00/_data_recovery.html +0 -1086
  319. data/spec/support/static/git-scm.com/book/en/v2/ch00/_delete_branches.html +0 -1009
  320. data/spec/support/static/git-scm.com/book/en/v2/ch00/_editor.html +0 -889
  321. data/spec/support/static/git-scm.com/book/en/v2/ch00/_eg_task_lists.html +0 -1502
  322. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_hooks.html +0 -876
  323. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_notification.html +0 -1502
  324. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_notifications.html +0 -1218
  325. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_pr.html +0 -1218
  326. data/spec/support/static/git-scm.com/book/en/v2/ch00/_enforcing_commit_message_format.html +0 -1200
  327. data/spec/support/static/git-scm.com/book/en/v2/ch00/_example_markdown.html +0 -1502
  328. data/spec/support/static/git-scm.com/book/en/v2/ch00/_external_merge_tools.html +0 -1315
  329. data/spec/support/static/git-scm.com/book/en/v2/ch00/_fetch_and_push_on_different_repositories.html +0 -1502
  330. data/spec/support/static/git-scm.com/book/en/v2/ch00/_fetching_and_pulling.html +0 -983
  331. data/spec/support/static/git-scm.com/book/en/v2/ch00/_file_annotation.html +0 -861
  332. data/spec/support/static/git-scm.com/book/en/v2/ch00/_first_time.html +0 -889
  333. data/spec/support/static/git-scm.com/book/en/v2/ch00/_generate_ssh_key.html +0 -759
  334. data/spec/support/static/git-scm.com/book/en/v2/ch00/_getting_a_repo.html +0 -816
  335. data/spec/support/static/git-scm.com/book/en/v2/ch00/_getting_git_on_a_server.html +0 -827
  336. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_aliases.html +0 -775
  337. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_am.html +0 -1354
  338. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_amend.html +0 -1182
  339. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_branches_overview.html +0 -1020
  340. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_clean.html +0 -1039
  341. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_cloning.html +0 -816
  342. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_commit_objects.html +0 -1209
  343. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_config.html +0 -1315
  344. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_diff_staged.html +0 -1432
  345. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_gc.html +0 -1086
  346. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_grep.html +0 -875
  347. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_help.html +0 -750
  348. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_hooks.html +0 -876
  349. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_mv.html +0 -1432
  350. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_p4.html +0 -1741
  351. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_p4_branches.html +0 -2656
  352. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_reflog.html +0 -1178
  353. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_refs.html +0 -939
  354. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_reset.html +0 -1236
  355. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_stashing.html +0 -1039
  356. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_submodules.html +0 -1864
  357. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_svn.html +0 -2656
  358. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_tagging.html +0 -1049
  359. data/spec/support/static/git-scm.com/book/en/v2/ch00/_gitlab_groups_section.html +0 -872
  360. data/spec/support/static/git-scm.com/book/en/v2/ch00/_ignoring.html +0 -1432
  361. data/spec/support/static/git-scm.com/book/en/v2/ch00/_inspecting_remote.html +0 -983
  362. data/spec/support/static/git-scm.com/book/en/v2/ch00/_integration_manager.html +0 -859
  363. data/spec/support/static/git-scm.com/book/en/v2/ch00/_interactive_staging.html +0 -920
  364. data/spec/support/static/git-scm.com/book/en/v2/ch00/_keyword_expansion.html +0 -1134
  365. data/spec/support/static/git-scm.com/book/en/v2/ch00/_libgit2_bindings.html +0 -1003
  366. data/spec/support/static/git-scm.com/book/en/v2/ch00/_manual_remerge.html +0 -1605
  367. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_code.html +0 -1502
  368. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_drag.html +0 -1502
  369. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_emoji.html +0 -1502
  370. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_quote.html +0 -1502
  371. data/spec/support/static/git-scm.com/book/en/v2/ch00/_merge_button.html +0 -1218
  372. data/spec/support/static/git-scm.com/book/en/v2/ch00/_merge_log.html +0 -1605
  373. data/spec/support/static/git-scm.com/book/en/v2/ch00/_merge_rebase_work.html +0 -1028
  374. data/spec/support/static/git-scm.com/book/en/v2/ch00/_new_repo_dropdown.html +0 -1218
  375. data/spec/support/static/git-scm.com/book/en/v2/ch00/_not_center.html +0 -1218
  376. data/spec/support/static/git-scm.com/book/en/v2/ch00/_org_page.html +0 -797
  377. data/spec/support/static/git-scm.com/book/en/v2/ch00/_other_client_hooks.html +0 -876
  378. data/spec/support/static/git-scm.com/book/en/v2/ch00/_p4_git_fusion.html +0 -2656
  379. data/spec/support/static/git-scm.com/book/en/v2/ch00/_patches_from_email.html +0 -1354
  380. data/spec/support/static/git-scm.com/book/en/v2/ch00/_personal_avatar.html +0 -858
  381. data/spec/support/static/git-scm.com/book/en/v2/ch00/_plumbing_porcelain.html +0 -745
  382. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_closed.html +0 -1502
  383. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_discussion.html +0 -1502
  384. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_fail.html +0 -1502
  385. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_final.html +0 -1502
  386. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_references.html +0 -1502
  387. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_references_render.html +0 -1502
  388. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_refs.html +0 -1218
  389. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pre_merge_rebase_work.html +0 -1028
  390. data/spec/support/static/git-scm.com/book/en/v2/ch00/_preparing_release.html +0 -1354
  391. data/spec/support/static/git-scm.com/book/en/v2/ch00/_private_team.html +0 -1667
  392. data/spec/support/static/git-scm.com/book/en/v2/ch00/_project_over_email.html +0 -1667
  393. data/spec/support/static/git-scm.com/book/en/v2/ch00/_public_project.html +0 -1667
  394. data/spec/support/static/git-scm.com/book/en/v2/ch00/_publishing_submodules.html +0 -1864
  395. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pushing_branches.html +0 -1009
  396. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pushing_refspecs.html +0 -872
  397. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pushing_remotes.html +0 -983
  398. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_cherry_pick.html +0 -1354
  399. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_peril.html +0 -1028
  400. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_rebase.html +0 -1028
  401. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_rebase_work.html +0 -1028
  402. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebasing.html +0 -1028
  403. data/spec/support/static/git-scm.com/book/en/v2/ch00/_refspec.html +0 -872
  404. data/spec/support/static/git-scm.com/book/en/v2/ch00/_remote_branches.html +0 -1009
  405. data/spec/support/static/git-scm.com/book/en/v2/ch00/_remote_repos.html +0 -983
  406. data/spec/support/static/git-scm.com/book/en/v2/ch00/_removing_file_every_commit.html +0 -1182
  407. data/spec/support/static/git-scm.com/book/en/v2/ch00/_removing_files.html +0 -1432
  408. data/spec/support/static/git-scm.com/book/en/v2/ch00/_removing_objects.html +0 -1086
  409. data/spec/support/static/git-scm.com/book/en/v2/ch00/_replace.html +0 -949
  410. data/spec/support/static/git-scm.com/book/en/v2/ch00/_reverse_commit.html +0 -1605
  411. data/spec/support/static/git-scm.com/book/en/v2/ch00/_revision_selection.html +0 -1178
  412. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rewriting_history.html +0 -1182
  413. data/spec/support/static/git-scm.com/book/en/v2/ch00/_searching.html +0 -875
  414. data/spec/support/static/git-scm.com/book/en/v2/ch00/_service_config.html +0 -1059
  415. data/spec/support/static/git-scm.com/book/en/v2/ch00/_services_hooks.html +0 -1059
  416. data/spec/support/static/git-scm.com/book/en/v2/ch00/_setting_up_server.html +0 -870
  417. data/spec/support/static/git-scm.com/book/en/v2/ch00/_sharing_tags.html +0 -1049
  418. data/spec/support/static/git-scm.com/book/en/v2/ch00/_signing.html +0 -922
  419. data/spec/support/static/git-scm.com/book/en/v2/ch00/_signing_commits.html +0 -922
  420. data/spec/support/static/git-scm.com/book/en/v2/ch00/_squashing.html +0 -1182
  421. data/spec/support/static/git-scm.com/book/en/v2/ch00/_starting_submodules.html +0 -1864
  422. data/spec/support/static/git-scm.com/book/en/v2/ch00/_subtree_merge.html +0 -1605
  423. data/spec/support/static/git-scm.com/book/en/v2/ch00/_switching_branches.html +0 -1020
  424. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tagging_releases.html +0 -1354
  425. data/spec/support/static/git-scm.com/book/en/v2/ch00/_task_list_progress.html +0 -1502
  426. data/spec/support/static/git-scm.com/book/en/v2/ch00/_team_page.html +0 -797
  427. data/spec/support/static/git-scm.com/book/en/v2/ch00/_the_index.html +0 -1236
  428. data/spec/support/static/git-scm.com/book/en/v2/ch00/_the_shortlog.html +0 -1354
  429. data/spec/support/static/git-scm.com/book/en/v2/ch00/_topic_branch.html +0 -786
  430. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tracking_branches.html +0 -1009
  431. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tracking_files.html +0 -1432
  432. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tree_objects.html +0 -1209
  433. data/spec/support/static/git-scm.com/book/en/v2/ch00/_triple_dot.html +0 -1178
  434. data/spec/support/static/git-scm.com/book/en/v2/ch00/_undoing.html +0 -998
  435. data/spec/support/static/git-scm.com/book/en/v2/ch00/_unstaging.html +0 -998
  436. data/spec/support/static/git-scm.com/book/en/v2/ch00/_viewing_history.html +0 -1172
  437. data/spec/support/static/git-scm.com/book/en/v2/ch00/_web_hook.html +0 -1059
  438. data/spec/support/static/git-scm.com/book/en/v2/ch00/_what_is_introduced.html +0 -1354
  439. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch01-getting-started.html +0 -783
  440. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch02-git-basics-chapter.html +0 -816
  441. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch03-git-branching.html +0 -1020
  442. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch05-distributed-git.html +0 -859
  443. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch06-github.html +0 -858
  444. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch06-github_flow.html +0 -1502
  445. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch10-git-internals.html +0 -745
  446. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch_core_editor.html +0 -863
  447. data/spec/support/static/git-scm.com/book/en/v2/ch00/divergent_history.html +0 -1020
  448. data/spec/support/static/git-scm.com/book/en/v2/ch00/double_dot.html +0 -1178
  449. data/spec/support/static/git-scm.com/book/en/v2/ch00/filters_a.html +0 -1134
  450. data/spec/support/static/git-scm.com/book/en/v2/ch00/filters_b.html +0 -1134
  451. data/spec/support/static/git-scm.com/book/en/v2/ch00/limit_options.html +0 -1172
  452. data/spec/support/static/git-scm.com/book/en/v2/ch00/log_options.html +0 -1172
  453. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_a.html +0 -1354
  454. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_b.html +0 -1354
  455. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_c.html +0 -1354
  456. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_d.html +0 -1354
  457. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_e.html +0 -1354
  458. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_f.html +0 -1354
  459. data/spec/support/static/git-scm.com/book/en/v2/ch00/oh_my_zsh_git.html +0 -765
  460. data/spec/support/static/git-scm.com/book/en/v2/ch00/pretty_format.html +0 -1172
  461. data/spec/support/static/git-scm.com/book/en/v2/ch00/psp_b.html +0 -1667
  462. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_e.html +0 -1028
  463. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_g.html +0 -1028
  464. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_h.html +0 -1028
  465. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_i.html +0 -1028
  466. data/spec/support/static/git-scm.com/book/en/v2/ch00/rebasing-merging-example.html +0 -1028
  467. data/spec/support/static/git-scm.com/book/en/v2/ch00/ref_rerere.html +0 -983
  468. data/spec/support/static/git-scm.com/book/en/v2/ch00/ref_the_ref.html +0 -939
  469. data/spec/support/static/git-scm.com/book/en/v2/ch00/wfdiag_b.html +0 -859
  470. data/spec/support/static/git-scm.com/book/en/v2/ch00/wfdiag_c.html +0 -859
  471. data/spec/support/static/git-scm.com/book/en/v2/ch00/what_is_git_section.html +0 -857
  472. data/spec/support/static/git-scm.com/book/en/v2/images/2fa-1.png +0 -0
  473. data/spec/support/static/git-scm.com/book/en/v2/images/account-settings.png +0 -0
  474. data/spec/support/static/git-scm.com/book/en/v2/images/advance-master.png +0 -0
  475. data/spec/support/static/git-scm.com/book/en/v2/images/advance-testing.png +0 -0
  476. data/spec/support/static/git-scm.com/book/en/v2/images/areas.png +0 -0
  477. data/spec/support/static/git-scm.com/book/en/v2/images/avatar-crop.png +0 -0
  478. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-1.png +0 -0
  479. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-2.png +0 -0
  480. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-3.png +0 -0
  481. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-4.png +0 -0
  482. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-5.png +0 -0
  483. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-6.png +0 -0
  484. data/spec/support/static/git-scm.com/book/en/v2/images/basic-merging-1.png +0 -0
  485. data/spec/support/static/git-scm.com/book/en/v2/images/basic-merging-2.png +0 -0
  486. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-1.png +0 -0
  487. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-2.png +0 -0
  488. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-3.png +0 -0
  489. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-4.png +0 -0
  490. data/spec/support/static/git-scm.com/book/en/v2/images/benevolent-dictator.png +0 -0
  491. data/spec/support/static/git-scm.com/book/en/v2/images/blink-01-start.png +0 -0
  492. data/spec/support/static/git-scm.com/book/en/v2/images/blink-02-pr.png +0 -0
  493. data/spec/support/static/git-scm.com/book/en/v2/images/blink-03-pull-request-open.png +0 -0
  494. data/spec/support/static/git-scm.com/book/en/v2/images/blink-04-email.png +0 -0
  495. data/spec/support/static/git-scm.com/book/en/v2/images/blink-04-pr-comment.png +0 -0
  496. data/spec/support/static/git-scm.com/book/en/v2/images/blink-05-general-comment.png +0 -0
  497. data/spec/support/static/git-scm.com/book/en/v2/images/blink-06-final.png +0 -0
  498. data/spec/support/static/git-scm.com/book/en/v2/images/branch-and-history.png +0 -0
  499. data/spec/support/static/git-scm.com/book/en/v2/images/branch_widget_mac.png +0 -0
  500. data/spec/support/static/git-scm.com/book/en/v2/images/branch_widget_win.png +0 -0
  501. data/spec/support/static/git-scm.com/book/en/v2/images/centralized.png +0 -0
  502. data/spec/support/static/git-scm.com/book/en/v2/images/centralized_workflow.png +0 -0
  503. data/spec/support/static/git-scm.com/book/en/v2/images/checkout-master.png +0 -0
  504. data/spec/support/static/git-scm.com/book/en/v2/images/clean.png +0 -0
  505. data/spec/support/static/git-scm.com/book/en/v2/images/collaborators.png +0 -0
  506. data/spec/support/static/git-scm.com/book/en/v2/images/commit-and-tree.png +0 -0
  507. data/spec/support/static/git-scm.com/book/en/v2/images/commits-and-parents.png +0 -0
  508. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-1.png +0 -0
  509. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-2.png +0 -0
  510. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-3.png +0 -0
  511. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-4.png +0 -0
  512. data/spec/support/static/git-scm.com/book/en/v2/images/deltas.png +0 -0
  513. data/spec/support/static/git-scm.com/book/en/v2/images/distributed.png +0 -0
  514. data/spec/support/static/git-scm.com/book/en/v2/images/double-dot.png +0 -0
  515. data/spec/support/static/git-scm.com/book/en/v2/images/email-settings.png +0 -0
  516. data/spec/support/static/git-scm.com/book/en/v2/images/forkbutton.png +0 -0
  517. data/spec/support/static/git-scm.com/book/en/v2/images/git-bash.png +0 -0
  518. data/spec/support/static/git-scm.com/book/en/v2/images/git-diff-check.png +0 -0
  519. data/spec/support/static/git-scm.com/book/en/v2/images/git-fusion-boot.png +0 -0
  520. data/spec/support/static/git-scm.com/book/en/v2/images/git-fusion-perforce-graph.png +0 -0
  521. data/spec/support/static/git-scm.com/book/en/v2/images/git-gui.png +0 -0
  522. data/spec/support/static/git-scm.com/book/en/v2/images/git-instaweb.png +0 -0
  523. data/spec/support/static/git-scm.com/book/en/v2/images/git-osx-installer.png +0 -0
  524. data/spec/support/static/git-scm.com/book/en/v2/images/github_mac.png +0 -0
  525. data/spec/support/static/git-scm.com/book/en/v2/images/github_win.png +0 -0
  526. data/spec/support/static/git-scm.com/book/en/v2/images/gitk.png +0 -0
  527. data/spec/support/static/git-scm.com/book/en/v2/images/gitlab-groups.png +0 -0
  528. data/spec/support/static/git-scm.com/book/en/v2/images/gitlab-menu.png +0 -0
  529. data/spec/support/static/git-scm.com/book/en/v2/images/gitlab-users.png +0 -0
  530. data/spec/support/static/git-scm.com/book/en/v2/images/head-to-master.png +0 -0
  531. data/spec/support/static/git-scm.com/book/en/v2/images/head-to-testing.png +0 -0
  532. data/spec/support/static/git-scm.com/book/en/v2/images/integration-manager.png +0 -0
  533. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-1.png +0 -0
  534. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-2.png +0 -0
  535. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-3.png +0 -0
  536. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-4.png +0 -0
  537. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-5.png +0 -0
  538. data/spec/support/static/git-scm.com/book/en/v2/images/jb.png +0 -0
  539. data/spec/support/static/git-scm.com/book/en/v2/images/large-merges-1.png +0 -0
  540. data/spec/support/static/git-scm.com/book/en/v2/images/large-merges-2.png +0 -0
  541. data/spec/support/static/git-scm.com/book/en/v2/images/lifecycle.png +0 -0
  542. data/spec/support/static/git-scm.com/book/en/v2/images/local.png +0 -0
  543. data/spec/support/static/git-scm.com/book/en/v2/images/lr-branches-1.png +0 -0
  544. data/spec/support/static/git-scm.com/book/en/v2/images/lr-branches-2.png +0 -0
  545. data/spec/support/static/git-scm.com/book/en/v2/images/maint-01-email.png +0 -0
  546. data/spec/support/static/git-scm.com/book/en/v2/images/maint-02-merge.png +0 -0
  547. data/spec/support/static/git-scm.com/book/en/v2/images/maint-03-email-resp.png +0 -0
  548. data/spec/support/static/git-scm.com/book/en/v2/images/maint-04-target.png +0 -0
  549. data/spec/support/static/git-scm.com/book/en/v2/images/maint-05-mentions.png +0 -0
  550. data/spec/support/static/git-scm.com/book/en/v2/images/maint-06-unsubscribe.png +0 -0
  551. data/spec/support/static/git-scm.com/book/en/v2/images/maint-07-notifications.png +0 -0
  552. data/spec/support/static/git-scm.com/book/en/v2/images/maint-08-notifications-page.png +0 -0
  553. data/spec/support/static/git-scm.com/book/en/v2/images/maint-09-contrib.png +0 -0
  554. data/spec/support/static/git-scm.com/book/en/v2/images/maint-10-default-branch.png +0 -0
  555. data/spec/support/static/git-scm.com/book/en/v2/images/maint-11-transfer.png +0 -0
  556. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-1.png +0 -0
  557. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-2.png +0 -0
  558. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-3.png +0 -0
  559. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-flow.png +0 -0
  560. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-01-example.png +0 -0
  561. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-02-tasks.png +0 -0
  562. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-03-task-summary.png +0 -0
  563. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-04-fenced-code.png +0 -0
  564. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-05-quote.png +0 -0
  565. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-06-emoji-complete.png +0 -0
  566. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-07-emoji.png +0 -0
  567. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-08-drag-drop.png +0 -0
  568. data/spec/support/static/git-scm.com/book/en/v2/images/mentions-01-syntax.png +0 -0
  569. data/spec/support/static/git-scm.com/book/en/v2/images/mentions-02-render.png +0 -0
  570. data/spec/support/static/git-scm.com/book/en/v2/images/mentions-03-closed.png +0 -0
  571. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-1.png +0 -0
  572. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-2.png +0 -0
  573. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-3.png +0 -0
  574. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-4.png +0 -0
  575. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-5.png +0 -0
  576. data/spec/support/static/git-scm.com/book/en/v2/images/new-repo.png +0 -0
  577. data/spec/support/static/git-scm.com/book/en/v2/images/neworg.png +0 -0
  578. data/spec/support/static/git-scm.com/book/en/v2/images/newrepo.png +0 -0
  579. data/spec/support/static/git-scm.com/book/en/v2/images/newrepoform.png +0 -0
  580. data/spec/support/static/git-scm.com/book/en/v2/images/orgs-01-page.png +0 -0
  581. data/spec/support/static/git-scm.com/book/en/v2/images/orgs-02-teams.png +0 -0
  582. data/spec/support/static/git-scm.com/book/en/v2/images/orgs-03-audit.png +0 -0
  583. data/spec/support/static/git-scm.com/book/en/v2/images/p4merge.png +0 -0
  584. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-1.png +0 -0
  585. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-2.png +0 -0
  586. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-3.png +0 -0
  587. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-4.png +0 -0
  588. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-5.png +0 -0
  589. data/spec/support/static/git-scm.com/book/en/v2/images/posh-git.png +0 -0
  590. data/spec/support/static/git-scm.com/book/en/v2/images/pr-01-fail.png +0 -0
  591. data/spec/support/static/git-scm.com/book/en/v2/images/pr-02-merge-fix.png +0 -0
  592. data/spec/support/static/git-scm.com/book/en/v2/images/public-small-1.png +0 -0
  593. data/spec/support/static/git-scm.com/book/en/v2/images/public-small-2.png +0 -0
  594. data/spec/support/static/git-scm.com/book/en/v2/images/public-small-3.png +0 -0
  595. data/spec/support/static/git-scm.com/book/en/v2/images/rebasing-1.png +0 -0
  596. data/spec/support/static/git-scm.com/book/en/v2/images/rebasing-2.png +0 -0
  597. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-1.png +0 -0
  598. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-2.png +0 -0
  599. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-3.png +0 -0
  600. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-4.png +0 -0
  601. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-5.png +0 -0
  602. data/spec/support/static/git-scm.com/book/en/v2/images/replace1.png +0 -0
  603. data/spec/support/static/git-scm.com/book/en/v2/images/replace2.png +0 -0
  604. data/spec/support/static/git-scm.com/book/en/v2/images/replace3.png +0 -0
  605. data/spec/support/static/git-scm.com/book/en/v2/images/replace4.png +0 -0
  606. data/spec/support/static/git-scm.com/book/en/v2/images/replace5.png +0 -0
  607. data/spec/support/static/git-scm.com/book/en/v2/images/reposettingslink.png +0 -0
  608. data/spec/support/static/git-scm.com/book/en/v2/images/rerere1.png +0 -0
  609. data/spec/support/static/git-scm.com/book/en/v2/images/rerere2.png +0 -0
  610. data/spec/support/static/git-scm.com/book/en/v2/images/rerere3.png +0 -0
  611. data/spec/support/static/git-scm.com/book/en/v2/images/reset-checkout.png +0 -0
  612. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex1.png +0 -0
  613. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex2.png +0 -0
  614. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex3.png +0 -0
  615. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex4.png +0 -0
  616. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex5.png +0 -0
  617. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex6.png +0 -0
  618. data/spec/support/static/git-scm.com/book/en/v2/images/reset-hard.png +0 -0
  619. data/spec/support/static/git-scm.com/book/en/v2/images/reset-mixed.png +0 -0
  620. data/spec/support/static/git-scm.com/book/en/v2/images/reset-path1.png +0 -0
  621. data/spec/support/static/git-scm.com/book/en/v2/images/reset-path2.png +0 -0
  622. data/spec/support/static/git-scm.com/book/en/v2/images/reset-path3.png +0 -0
  623. data/spec/support/static/git-scm.com/book/en/v2/images/reset-soft.png +0 -0
  624. data/spec/support/static/git-scm.com/book/en/v2/images/reset-squash-r1.png +0 -0
  625. data/spec/support/static/git-scm.com/book/en/v2/images/reset-squash-r2.png +0 -0
  626. data/spec/support/static/git-scm.com/book/en/v2/images/reset-squash-r3.png +0 -0
  627. data/spec/support/static/git-scm.com/book/en/v2/images/reset-start.png +0 -0
  628. data/spec/support/static/git-scm.com/book/en/v2/images/reset-workflow.png +0 -0
  629. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-01-services.png +0 -0
  630. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-02-email-service.png +0 -0
  631. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-03-webhook.png +0 -0
  632. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-04-webhook-debug.png +0 -0
  633. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-05-access-token.png +0 -0
  634. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-06-comment.png +0 -0
  635. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-07-status.png +0 -0
  636. data/spec/support/static/git-scm.com/book/en/v2/images/signup.png +0 -0
  637. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-1.png +0 -0
  638. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-2.png +0 -0
  639. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-3.png +0 -0
  640. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-4.png +0 -0
  641. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-5.png +0 -0
  642. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-6.png +0 -0
  643. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-7.png +0 -0
  644. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-flow.png +0 -0
  645. data/spec/support/static/git-scm.com/book/en/v2/images/smudge.png +0 -0
  646. data/spec/support/static/git-scm.com/book/en/v2/images/snapshots.png +0 -0
  647. data/spec/support/static/git-scm.com/book/en/v2/images/ssh-keys.png +0 -0
  648. data/spec/support/static/git-scm.com/book/en/v2/images/topic-branches-1.png +0 -0
  649. data/spec/support/static/git-scm.com/book/en/v2/images/topic-branches-2.png +0 -0
  650. data/spec/support/static/git-scm.com/book/en/v2/images/two-branches.png +0 -0
  651. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-reset.png +0 -0
  652. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-revert.png +0 -0
  653. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-revert2.png +0 -0
  654. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-revert3.png +0 -0
  655. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-start.png +0 -0
  656. data/spec/support/static/git-scm.com/book/en/v2/images/your-profile.png +0 -0
  657. data/spec/support/static/git-scm.com/book/en/v2/images/zsh-oh-my.png +0 -0
  658. data/spec/support/static/git-scm.com/book/en/v2/images/zsh-prompt.png +0 -0
  659. data/spec/support/static/git-scm.com/book/en/v2.html +0 -688
  660. data/spec/support/static/git-scm.com/favicon.ico +0 -0
  661. data/spec/support/static/git-scm.com/images/bg/body.jpg +0 -0
  662. data/spec/support/static/git-scm.com/images/bg/isometric-grid.png +0 -0
  663. data/spec/support/static/git-scm.com/images/bg/isometric-grid@2x.png +0 -0
  664. data/spec/support/static/git-scm.com/images/bg/search-header.jpg +0 -0
  665. data/spec/support/static/git-scm.com/images/company-project-logos/android.png +0 -0
  666. data/spec/support/static/git-scm.com/images/company-project-logos/android@2x.png +0 -0
  667. data/spec/support/static/git-scm.com/images/company-project-logos/eclipse.png +0 -0
  668. data/spec/support/static/git-scm.com/images/company-project-logos/eclipse@2x.png +0 -0
  669. data/spec/support/static/git-scm.com/images/company-project-logos/facebook.png +0 -0
  670. data/spec/support/static/git-scm.com/images/company-project-logos/facebook@2x.png +0 -0
  671. data/spec/support/static/git-scm.com/images/company-project-logos/gnome.png +0 -0
  672. data/spec/support/static/git-scm.com/images/company-project-logos/gnome@2x.png +0 -0
  673. data/spec/support/static/git-scm.com/images/company-project-logos/google.png +0 -0
  674. data/spec/support/static/git-scm.com/images/company-project-logos/google@2x.png +0 -0
  675. data/spec/support/static/git-scm.com/images/company-project-logos/kde.png +0 -0
  676. data/spec/support/static/git-scm.com/images/company-project-logos/kde@2x.png +0 -0
  677. data/spec/support/static/git-scm.com/images/company-project-logos/linked-in.png +0 -0
  678. data/spec/support/static/git-scm.com/images/company-project-logos/linked-in@2x.png +0 -0
  679. data/spec/support/static/git-scm.com/images/company-project-logos/linux.png +0 -0
  680. data/spec/support/static/git-scm.com/images/company-project-logos/linux@2x.png +0 -0
  681. data/spec/support/static/git-scm.com/images/company-project-logos/microsoft.png +0 -0
  682. data/spec/support/static/git-scm.com/images/company-project-logos/microsoft@2x.png +0 -0
  683. data/spec/support/static/git-scm.com/images/company-project-logos/netflix.png +0 -0
  684. data/spec/support/static/git-scm.com/images/company-project-logos/netflix@2x.png +0 -0
  685. data/spec/support/static/git-scm.com/images/company-project-logos/perl.png +0 -0
  686. data/spec/support/static/git-scm.com/images/company-project-logos/perl@2x.png +0 -0
  687. data/spec/support/static/git-scm.com/images/company-project-logos/postgresql.png +0 -0
  688. data/spec/support/static/git-scm.com/images/company-project-logos/postgresql@2x.png +0 -0
  689. data/spec/support/static/git-scm.com/images/company-project-logos/qt.png +0 -0
  690. data/spec/support/static/git-scm.com/images/company-project-logos/qt@2x.png +0 -0
  691. data/spec/support/static/git-scm.com/images/company-project-logos/rails.png +0 -0
  692. data/spec/support/static/git-scm.com/images/company-project-logos/rails@2x.png +0 -0
  693. data/spec/support/static/git-scm.com/images/company-project-logos/twitter.png +0 -0
  694. data/spec/support/static/git-scm.com/images/company-project-logos/twitter@2x.png +0 -0
  695. data/spec/support/static/git-scm.com/images/company-project-logos/x.png +0 -0
  696. data/spec/support/static/git-scm.com/images/company-project-logos/x@2x.png +0 -0
  697. data/spec/support/static/git-scm.com/images/epub.png +0 -0
  698. data/spec/support/static/git-scm.com/images/icons/admin-sm.png +0 -0
  699. data/spec/support/static/git-scm.com/images/icons/admin-sm@2x.png +0 -0
  700. data/spec/support/static/git-scm.com/images/icons/apple.png +0 -0
  701. data/spec/support/static/git-scm.com/images/icons/apple@2x.png +0 -0
  702. data/spec/support/static/git-scm.com/images/icons/book.png +0 -0
  703. data/spec/support/static/git-scm.com/images/icons/book@2x.png +0 -0
  704. data/spec/support/static/git-scm.com/images/icons/box.png +0 -0
  705. data/spec/support/static/git-scm.com/images/icons/box@2x.png +0 -0
  706. data/spec/support/static/git-scm.com/images/icons/branch-sm.png +0 -0
  707. data/spec/support/static/git-scm.com/images/icons/branch-sm@2x.png +0 -0
  708. data/spec/support/static/git-scm.com/images/icons/camera-sm.png +0 -0
  709. data/spec/support/static/git-scm.com/images/icons/camera-sm@2x.png +0 -0
  710. data/spec/support/static/git-scm.com/images/icons/chevron-up@2x.png +0 -0
  711. data/spec/support/static/git-scm.com/images/icons/code.png +0 -0
  712. data/spec/support/static/git-scm.com/images/icons/code@2x.png +0 -0
  713. data/spec/support/static/git-scm.com/images/icons/debugging-sm.png +0 -0
  714. data/spec/support/static/git-scm.com/images/icons/debugging-sm@2x.png +0 -0
  715. data/spec/support/static/git-scm.com/images/icons/document.png +0 -0
  716. data/spec/support/static/git-scm.com/images/icons/document@2x.png +0 -0
  717. data/spec/support/static/git-scm.com/images/icons/download.png +0 -0
  718. data/spec/support/static/git-scm.com/images/icons/email-sm.png +0 -0
  719. data/spec/support/static/git-scm.com/images/icons/email-sm@2x.png +0 -0
  720. data/spec/support/static/git-scm.com/images/icons/external-sm.png +0 -0
  721. data/spec/support/static/git-scm.com/images/icons/external-sm@2x.png +0 -0
  722. data/spec/support/static/git-scm.com/images/icons/gui.png +0 -0
  723. data/spec/support/static/git-scm.com/images/icons/gui@2x.png +0 -0
  724. data/spec/support/static/git-scm.com/images/icons/info.png +0 -0
  725. data/spec/support/static/git-scm.com/images/icons/info@2x.png +0 -0
  726. data/spec/support/static/git-scm.com/images/icons/inspection-sm.png +0 -0
  727. data/spec/support/static/git-scm.com/images/icons/inspection-sm@2x.png +0 -0
  728. data/spec/support/static/git-scm.com/images/icons/linux.png +0 -0
  729. data/spec/support/static/git-scm.com/images/icons/linux@2x.png +0 -0
  730. data/spec/support/static/git-scm.com/images/icons/nav-circles.png +0 -0
  731. data/spec/support/static/git-scm.com/images/icons/nav-circles@2x.png +0 -0
  732. data/spec/support/static/git-scm.com/images/icons/patching-sm.png +0 -0
  733. data/spec/support/static/git-scm.com/images/icons/patching-sm@2x.png +0 -0
  734. data/spec/support/static/git-scm.com/images/icons/plumbing-sm.png +0 -0
  735. data/spec/support/static/git-scm.com/images/icons/plumbing-sm@2x.png +0 -0
  736. data/spec/support/static/git-scm.com/images/icons/projects-sm.png +0 -0
  737. data/spec/support/static/git-scm.com/images/icons/projects-sm@2x.png +0 -0
  738. data/spec/support/static/git-scm.com/images/icons/search.png +0 -0
  739. data/spec/support/static/git-scm.com/images/icons/search@2x.png +0 -0
  740. data/spec/support/static/git-scm.com/images/icons/server-admin-sm.png +0 -0
  741. data/spec/support/static/git-scm.com/images/icons/server-admin-sm@2x.png +0 -0
  742. data/spec/support/static/git-scm.com/images/icons/setup-sm.png +0 -0
  743. data/spec/support/static/git-scm.com/images/icons/setup-sm@2x.png +0 -0
  744. data/spec/support/static/git-scm.com/images/icons/sharing-sm.png +0 -0
  745. data/spec/support/static/git-scm.com/images/icons/sharing-sm@2x.png +0 -0
  746. data/spec/support/static/git-scm.com/images/icons/sidebar.png +0 -0
  747. data/spec/support/static/git-scm.com/images/icons/sidebar@2x.png +0 -0
  748. data/spec/support/static/git-scm.com/images/icons/source-code.png +0 -0
  749. data/spec/support/static/git-scm.com/images/icons/source-code@2x.png +0 -0
  750. data/spec/support/static/git-scm.com/images/icons/windows.png +0 -0
  751. data/spec/support/static/git-scm.com/images/icons/windows@2x.png +0 -0
  752. data/spec/support/static/git-scm.com/images/logo@2x.png +0 -0
  753. data/spec/support/static/git-scm.com/images/mobi.png +0 -0
  754. data/spec/support/static/git-scm.com/images/monitor-default.png +0 -0
  755. data/spec/support/static/git-scm.com/images/monitor-default@2x.png +0 -0
  756. data/spec/support/static/git-scm.com/images/monitor-linux.png +0 -0
  757. data/spec/support/static/git-scm.com/images/monitor-linux@2x.png +0 -0
  758. data/spec/support/static/git-scm.com/images/monitor-mac.png +0 -0
  759. data/spec/support/static/git-scm.com/images/monitor-mac@2x.png +0 -0
  760. data/spec/support/static/git-scm.com/images/monitor-windows.png +0 -0
  761. data/spec/support/static/git-scm.com/images/monitor-windows@2x.png +0 -0
  762. data/spec/support/static/git-scm.com/images/pdf.png +0 -0
  763. data/spec/support/static/git-scm.com/images/progit2.png +0 -0
  764. data/spec/support/static/git-scm.com/images/sidebar-divider.png +0 -0
  765. data/spec/support/static/git-scm.com/images/sidebar-divider@2x.png +0 -0
  766. data/spec/support/static/git-scm.com/robots.txt +0 -0
  767. data/spec/support/static/graph/details/a.html +0 -10
  768. data/spec/support/static/graph/details/b.html +0 -10
  769. data/spec/support/static/graph/index.html +0 -20
  770. data/spec/support/static/links/links.html +0 -28
  771. data/docs/{reference → guides}/cli.md +0 -0
  772. data/spec/{stringify_spec.rb → wayfarer/stringify_spec.rb} +2 -2
  773. /data/spec/{task_spec.rb → wayfarer/task_spec.rb} +0 -0
@@ -1,1236 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <!-- Global site tag (gtag.js) - Google Analytics -->
6
- <script async src="https://www.googletagmanager.com/gtag/js?id=UA-49925874-3"></script>
7
- <script>
8
- window.dataLayer = window.dataLayer || [];
9
- function gtag(){dataLayer.push(arguments);}
10
- gtag('js', new Date());
11
-
12
- gtag('config', 'UA-49925874-3');
13
- </script>
14
-
15
- <meta charset='utf-8'>
16
- <meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'>
17
- <meta name="viewport" content="width=device-width, initial-scale=1">
18
- <title>Git - Reset Demystified</title>
19
-
20
- <link href='../../../favicon.ico' rel='shortcut icon' type='image/x-icon'>
21
-
22
- <link rel="stylesheet" media="screen" href="../../../assets/application-cafcf280f67db0e6d8168ba98a38da878769a9d5f37793b68ffb963a02d185e0.css" />
23
- <script src="../../../assets/modernize-b3ebe0c31c24f230dc62179d3e1030d2e57a53b1668d9382c0a27dbd44a94beb.js"></script>
24
- <!--[if (gte IE 6)&(lte IE 8)]>
25
- <script src="/javascripts/selectivizr-min.js"></script>
26
- <![endif]-->
27
-
28
- </head>
29
-
30
- <body id="documentation">
31
-
32
- <div class="inner">
33
- <header>
34
-
35
- <a href="https://git-scm.com/"><img src="../../../images/logo@2x.png" width="110" height="46" alt="Git" /></a>
36
- <span id="tagline"></span>
37
- <script type="text/javascript">
38
- var taglines = ["fast-version-control","everything-is-local","distributed-even-if-your-workflow-isnt","local-branching-on-the-cheap","distributed-is-the-new-centralized"];
39
- var tagline = taglines[Math.floor(Math.random() * taglines.length)];
40
- document.getElementById('tagline').innerHTML = '--' + tagline;
41
- </script>
42
- <form id="search" action="https://git-scm.com/search/results">
43
- <input id="search-text" name="search" placeholder="Search entire site..." autocomplete="off" type="text" />
44
- </form>
45
- <div id="search-results"></div>
46
-
47
- </header>
48
-
49
- </div> <!-- .inner -->
50
-
51
- <div class="inner">
52
- <div id="content-wrapper">
53
- <button class="sidebar-btn"></button>
54
- <aside class="sidebar" id="sidebar">
55
- <nav>
56
- <ul>
57
- <li>
58
- <a href="https://git-scm.com/about">About</a>
59
- <ul class="">
60
- <li>
61
- <a href="https://git-scm.com/about">Branching and Merging</a>
62
- </li>
63
- <li>
64
- <a href="https://git-scm.com/about/small-and-fast">Small and Fast</a>
65
- </li>
66
- <li>
67
- <a href="https://git-scm.com/about/distributed">Distributed</a>
68
- </li>
69
- <li>
70
- <a href="https://git-scm.com/about/info-assurance">Data Assurance</a>
71
- </li>
72
- <li>
73
- <a href="https://git-scm.com/about/staging-area">Staging Area</a>
74
- </li>
75
- <li>
76
- <a href="https://git-scm.com/about/free-and-open-source">Free and Open Source</a>
77
- </li>
78
- <li>
79
- <a href="https://git-scm.com/about/trademark">Trademark</a>
80
- </li>
81
- </ul>
82
- </li>
83
- <li>
84
- <a class="active" href="https://git-scm.com/doc">Documentation</a>
85
- <ul class="expanded">
86
- <li>
87
- <a href="https://git-scm.com/docs">Reference</a>
88
- </li>
89
- <li>
90
- <a class="active" href="https://git-scm.com/book">Book</a>
91
- </li>
92
- <li>
93
- <a href="https://git-scm.com/videos">Videos</a>
94
- </li>
95
- <li>
96
- <a href="https://git-scm.com/doc/ext">External Links</a>
97
- </li>
98
- </ul>
99
- </li>
100
- <li>
101
- <a href="https://git-scm.com/downloads">Downloads</a>
102
- <ul class="">
103
- <li>
104
- <a href="https://git-scm.com/downloads/guis">GUI Clients</a>
105
- </li>
106
- <li>
107
- <a href="https://git-scm.com/downloads/logos">Logos</a>
108
- </li>
109
- </ul>
110
- </li>
111
- <li>
112
- <a href="https://git-scm.com/community">Community</a>
113
- </li>
114
- </ul>
115
- <hr class="sidebar">
116
- <p>
117
- This book is available in
118
- <a href="https://git-scm.com/book/en">English</a>.
119
- </p>
120
- <p>
121
- Full translation available in
122
- <table>
123
- <tr><td><a href="https://git-scm.com/book/az">azərbaycan dili</a>,</td></tr>
124
- <tr><td><a href="https://git-scm.com/book/bg">български език</a>,</td></tr>
125
- <tr><td><a href="https://git-scm.com/book/de">Deutsch</a>,</td></tr>
126
- <tr><td><a href="https://git-scm.com/book/es">Español</a>,</td></tr>
127
- <tr><td><a href="https://git-scm.com/book/fr">Français</a>,</td></tr>
128
- <tr><td><a href="https://git-scm.com/book/gr">Ελληνικά</a>,</td></tr>
129
- <tr><td><a href="https://git-scm.com/book/ja">日本語</a>,</td></tr>
130
- <tr><td><a href="https://git-scm.com/book/ko">한국어</a>,</td></tr>
131
- <tr><td><a href="https://git-scm.com/book/nl">Nederlands</a>,</td></tr>
132
- <tr><td><a href="https://git-scm.com/book/ru">Русский</a>,</td></tr>
133
- <tr><td><a href="https://git-scm.com/book/sl">Slovenščina</a>,</td></tr>
134
- <tr><td><a href="https://git-scm.com/book/tl">Tagalog</a>,</td></tr>
135
- <tr><td><a href="https://git-scm.com/book/uk">Українська</a></td></tr>
136
- <tr><td><a href="https://git-scm.com/book/zh">简体中文</a>,</td></tr>
137
- </table>
138
- </p>
139
- <p>
140
- Partial translations available in
141
- <table>
142
- <tr><td><a href="https://git-scm.com/book/cs">Čeština</a>,</td></tr>
143
- <tr><td><a href="https://git-scm.com/book/mk">Македонски</a>,</td></tr>
144
- <tr><td><a href="https://git-scm.com/book/pl">Polski</a>,</td></tr>
145
- <tr><td><a href="https://git-scm.com/book/sr">Српски</a>,</td></tr>
146
- <tr><td><a href="https://git-scm.com/book/uz">Ўзбекча</a>,</td></tr>
147
- <tr><td><a href="https://git-scm.com/book/zh-tw">繁體中文</a>,</td></tr>
148
- </table>
149
- </p>
150
- <p>
151
- Translations started for
152
- <table>
153
- <tr><td><a href="https://git-scm.com/book/be">Беларуская</a>,</td></tr>
154
- <tr><td><a href="https://git-scm.com/book/fa" dir="rtl">فارسی</a>,</td></tr>
155
- <tr><td><a href="https://git-scm.com/book/id">Indonesian</a>,</td></tr>
156
- <tr><td><a href="https://git-scm.com/book/it">Italiano</a>,</td></tr>
157
- <tr><td><a href="https://git-scm.com/book/ms">Bahasa Melayu</a>,</td></tr>
158
- <tr><td><a href="https://git-scm.com/book/pt-br">Português (Brasil)</a>,</td></tr>
159
- <tr><td><a href="https://git-scm.com/book/pt-pt">Português (Portugal)</a>,</td></tr>
160
- <tr><td><a href="https://git-scm.com/book/sv">Svenska</a>,</td></tr>
161
- <tr><td><a href="https://git-scm.com/book/tr">Türkçe</a>.</td></tr>
162
- </table>
163
- </p>
164
- <hr class="sidebar"/>
165
- <p>
166
- The source of this book is <a href="https://github.com/progit/progit2">hosted on GitHub.</a></br>
167
- Patches, suggestions and comments are welcome.
168
- </p>
169
-
170
-
171
- </nav>
172
- </aside>
173
-
174
- <div id="content">
175
-
176
-
177
- <div id='book-chapters'>
178
- <a class="dropdown-trigger" id="book-chapters-trigger" data-panel-id="chapters-dropdown" href="ch00/_the_index.html#">Chapters ▾</a>
179
- <div class='dropdown-panel' id='chapters-dropdown'>
180
- <div class="three-column">
181
- <div class='column-left'>
182
- <ol class='book-toc'>
183
- <li class='chapter'>
184
- <h2>1. <a href="ch00/ch01-getting-started.html">Getting Started</a></h2>
185
- <ol>
186
- <li>
187
- 1.1
188
- <a href="ch00/ch01-getting-started.html" >About Version Control </a>
189
- </li>
190
- <li>
191
- 1.2
192
- <a href="Getting-Started-A-Short-History-of-Git.html" >A Short History of Git </a>
193
- </li>
194
- <li>
195
- 1.3
196
- <a href="ch00/what_is_git_section.html" >What is Git? </a>
197
- </li>
198
- <li>
199
- 1.4
200
- <a href="Getting-Started-The-Command-Line.html" >The Command Line </a>
201
- </li>
202
- <li>
203
- 1.5
204
- <a href="Getting-Started-Installing-Git.html" >Installing Git </a>
205
- </li>
206
- <li>
207
- 1.6
208
- <a href="ch00/_editor.html" >First-Time Git Setup </a>
209
- </li>
210
- <li>
211
- 1.7
212
- <a href="ch00/_git_help.html" >Getting Help </a>
213
- </li>
214
- <li>
215
- 1.8
216
- <a href="Getting-Started-Summary.html" >Summary </a>
217
- </li>
218
- </ol>
219
- </li>
220
- <li class='chapter'>
221
- <h2>2. <a href="ch00/_git_cloning.html">Git Basics</a></h2>
222
- <ol>
223
- <li>
224
- 2.1
225
- <a href="ch00/_git_cloning.html" >Getting a Git Repository </a>
226
- </li>
227
- <li>
228
- 2.2
229
- <a href="ch00/_git_mv.html" >Recording Changes to the Repository </a>
230
- </li>
231
- <li>
232
- 2.3
233
- <a href="ch00/_viewing_history.html" >Viewing the Commit History </a>
234
- </li>
235
- <li>
236
- 2.4
237
- <a href="ch00/_unstaging.html" >Undoing Things </a>
238
- </li>
239
- <li>
240
- 2.5
241
- <a href="ch00/_remote_repos.html" >Working with Remotes </a>
242
- </li>
243
- <li>
244
- 2.6
245
- <a href="ch00/_annotated_tags.html" >Tagging </a>
246
- </li>
247
- <li>
248
- 2.7
249
- <a href="ch00/_git_aliases.html" >Git Aliases </a>
250
- </li>
251
- <li>
252
- 2.8
253
- <a href="Git-Basics-Summary.html" >Summary </a>
254
- </li>
255
- </ol>
256
- </li>
257
- <li class='chapter'>
258
- <h2>3. <a href="ch00/_switching_branches.html">Git Branching</a></h2>
259
- <ol>
260
- <li>
261
- 3.1
262
- <a href="ch00/_switching_branches.html" >Branches in a Nutshell </a>
263
- </li>
264
- <li>
265
- 3.2
266
- <a href="ch00/_basic_branching.html" >Basic Branching and Merging </a>
267
- </li>
268
- <li>
269
- 3.3
270
- <a href="ch00/_branch_management.html" >Branch Management </a>
271
- </li>
272
- <li>
273
- 3.4
274
- <a href="ch00/_topic_branch.html" >Branching Workflows </a>
275
- </li>
276
- <li>
277
- 3.5
278
- <a href="ch00/_delete_branches.html" >Remote Branches </a>
279
- </li>
280
- <li>
281
- 3.6
282
- <a href="ch00/_rebase_rebase.html" >Rebasing </a>
283
- </li>
284
- <li>
285
- 3.7
286
- <a href="Git-Branching-Summary.html" >Summary </a>
287
- </li>
288
- </ol>
289
- </li>
290
- <li class='chapter'>
291
- <h2>4. <a href="Git-on-the-Server-The-Protocols.html">Git on the Server</a></h2>
292
- <ol>
293
- <li>
294
- 4.1
295
- <a href="Git-on-the-Server-The-Protocols.html" >The Protocols </a>
296
- </li>
297
- <li>
298
- 4.2
299
- <a href="ch00/_bare_repo.html" >Getting Git on a Server </a>
300
- </li>
301
- <li>
302
- 4.3
303
- <a href="ch00/_generate_ssh_key.html" >Generating Your SSH Public Key </a>
304
- </li>
305
- <li>
306
- 4.4
307
- <a href="ch00/_setting_up_server.html" >Setting Up the Server </a>
308
- </li>
309
- <li>
310
- 4.5
311
- <a href="Git-on-the-Server-Git-Daemon.html" >Git Daemon </a>
312
- </li>
313
- <li>
314
- 4.6
315
- <a href="Git-on-the-Server-Smart-HTTP.html" >Smart HTTP </a>
316
- </li>
317
- <li>
318
- 4.7
319
- <a href="Git-on-the-Server-GitWeb.html" >GitWeb </a>
320
- </li>
321
- <li>
322
- 4.8
323
- <a href="ch00/_gitlab_groups_section.html" >GitLab </a>
324
- </li>
325
- <li>
326
- 4.9
327
- <a href="Git-on-the-Server-Third-Party-Hosted-Options.html" >Third Party Hosted Options </a>
328
- </li>
329
- <li>
330
- 4.10
331
- <a href="Git-on-the-Server-Summary.html" >Summary </a>
332
- </li>
333
- </ol>
334
- </li>
335
- <li class='chapter'>
336
- <h2>5. <a href="ch00/_integration_manager.html">Distributed Git</a></h2>
337
- <ol>
338
- <li>
339
- 5.1
340
- <a href="ch00/_integration_manager.html" >Distributed Workflows </a>
341
- </li>
342
- <li>
343
- 5.2
344
- <a href="ch00/_project_over_email.html" >Contributing to a Project </a>
345
- </li>
346
- <li>
347
- 5.3
348
- <a href="ch00/_git_am.html" >Maintaining a Project </a>
349
- </li>
350
- <li>
351
- 5.4
352
- <a href="Distributed-Git-Summary.html" >Summary </a>
353
- </li>
354
- </ol>
355
- </li>
356
- </ol>
357
-
358
- </div>
359
- <div class='column-middle'>
360
- <ol class='book-toc'>
361
- <li class='chapter'>
362
- <h2>6. <a href="ch00/_personal_avatar.html">GitHub</a></h2>
363
- <ol>
364
- <li>
365
- 6.1
366
- <a href="ch00/_personal_avatar.html" >Account Setup and Configuration </a>
367
- </li>
368
- <li>
369
- 6.2
370
- <a href="ch00/_fetch_and_push_on_different_repositories.html" >Contributing to a Project </a>
371
- </li>
372
- <li>
373
- 6.3
374
- <a href="ch00/_email_notifications.html" >Maintaining a Project </a>
375
- </li>
376
- <li>
377
- 6.4
378
- <a href="ch00/_team_page.html" >Managing an organization </a>
379
- </li>
380
- <li>
381
- 6.5
382
- <a href="ch00/_commit_status.html" >Scripting GitHub </a>
383
- </li>
384
- <li>
385
- 6.6
386
- <a href="GitHub-Summary.html" >Summary </a>
387
- </li>
388
- </ol>
389
- </li>
390
- <li class='chapter'>
391
- <h2>7. <a href="ch00/_git_reflog.html">Git Tools</a></h2>
392
- <ol>
393
- <li>
394
- 7.1
395
- <a href="ch00/_git_reflog.html" >Revision Selection </a>
396
- </li>
397
- <li>
398
- 7.2
399
- <a href="ch00/_interactive_staging.html" >Interactive Staging </a>
400
- </li>
401
- <li>
402
- 7.3
403
- <a href="ch00/_git_clean.html" >Stashing and Cleaning </a>
404
- </li>
405
- <li>
406
- 7.4
407
- <a href="ch00/_signing_commits.html" >Signing Your Work </a>
408
- </li>
409
- <li>
410
- 7.5
411
- <a href="ch00/_git_grep.html" >Searching </a>
412
- </li>
413
- <li>
414
- 7.6
415
- <a href="ch00/_removing_file_every_commit.html" >Rewriting History </a>
416
- </li>
417
- <li>
418
- 7.7
419
- <a href="ch00/_the_index.html" class=active>Reset Demystified </a>
420
- </li>
421
- <li>
422
- 7.8
423
- <a href="ch00/_reverse_commit.html" >Advanced Merging </a>
424
- </li>
425
- <li>
426
- 7.9
427
- <a href="ch00/ref_rerere.html" >Rerere </a>
428
- </li>
429
- <li>
430
- 7.10
431
- <a href="ch00/_file_annotation.html" >Debugging with Git </a>
432
- </li>
433
- <li>
434
- 7.11
435
- <a href="ch00/_publishing_submodules.html" >Submodules </a>
436
- </li>
437
- <li>
438
- 7.12
439
- <a href="ch00/_bundling.html" >Bundling </a>
440
- </li>
441
- <li>
442
- 7.13
443
- <a href="ch00/_replace.html" >Replace </a>
444
- </li>
445
- <li>
446
- 7.14
447
- <a href="ch00/_credential_caching.html" >Credential Storage </a>
448
- </li>
449
- <li>
450
- 7.15
451
- <a href="Git-Tools-Summary.html" >Summary </a>
452
- </li>
453
- </ol>
454
- </li>
455
- <li class='chapter'>
456
- <h2>8. <a href="ch00/_external_merge_tools.html">Customizing Git</a></h2>
457
- <ol>
458
- <li>
459
- 8.1
460
- <a href="ch00/_external_merge_tools.html" >Git Configuration </a>
461
- </li>
462
- <li>
463
- 8.2
464
- <a href="ch00/_keyword_expansion.html" >Git Attributes </a>
465
- </li>
466
- <li>
467
- 8.3
468
- <a href="ch00/_email_hooks.html" >Git Hooks </a>
469
- </li>
470
- <li>
471
- 8.4
472
- <a href="ch00/_enforcing_commit_message_format.html" >An Example Git-Enforced Policy </a>
473
- </li>
474
- <li>
475
- 8.5
476
- <a href="Customizing-Git-Summary.html" >Summary </a>
477
- </li>
478
- </ol>
479
- </li>
480
- <li class='chapter'>
481
- <h2>9. <a href="ch00/_git_svn.html">Git and Other Systems</a></h2>
482
- <ol>
483
- <li>
484
- 9.1
485
- <a href="ch00/_git_svn.html" >Git as a Client </a>
486
- </li>
487
- <li>
488
- 9.2
489
- <a href="ch00/_git_p4.html" >Migrating to Git </a>
490
- </li>
491
- <li>
492
- 9.3
493
- <a href="Git-and-Other-Systems-Summary.html" >Summary </a>
494
- </li>
495
- </ol>
496
- </li>
497
- <li class='chapter'>
498
- <h2>10. <a href="ch00/_plumbing_porcelain.html">Git Internals</a></h2>
499
- <ol>
500
- <li>
501
- 10.1
502
- <a href="ch00/_plumbing_porcelain.html" >Plumbing and Porcelain </a>
503
- </li>
504
- <li>
505
- 10.2
506
- <a href="ch00/_git_commit_objects.html" >Git Objects </a>
507
- </li>
508
- <li>
509
- 10.3
510
- <a href="ch00/ref_the_ref.html" >Git References </a>
511
- </li>
512
- <li>
513
- 10.4
514
- <a href="Git-Internals-Packfiles.html" >Packfiles </a>
515
- </li>
516
- <li>
517
- 10.5
518
- <a href="ch00/_pushing_refspecs.html" >The Refspec </a>
519
- </li>
520
- <li>
521
- 10.6
522
- <a href="Git-Internals-Transfer-Protocols.html" >Transfer Protocols </a>
523
- </li>
524
- <li>
525
- 10.7
526
- <a href="ch00/_git_gc.html" >Maintenance and Data Recovery </a>
527
- </li>
528
- <li>
529
- 10.8
530
- <a href="Git-Internals-Environment-Variables.html" >Environment Variables </a>
531
- </li>
532
- <li>
533
- 10.9
534
- <a href="Git-Internals-Summary.html" >Summary </a>
535
- </li>
536
- </ol>
537
- </li>
538
- </ol>
539
-
540
- </div>
541
- <div class='column-right'>
542
- <ol class='book-toc'>
543
- <li class='chapter'>
544
- <h2>A1. <a href="./Appendix-A:-Git-in-Other-Environments-Graphical-Interfaces.html">Appendix A: Git in Other Environments</a></h2>
545
- <ol>
546
- <li>
547
- A1.1
548
- <a href="./Appendix-A:-Git-in-Other-Environments-Graphical-Interfaces.html" >Graphical Interfaces </a>
549
- </li>
550
- <li>
551
- A1.2
552
- <a href="./Appendix-A:-Git-in-Other-Environments-Git-in-Visual-Studio.html" >Git in Visual Studio </a>
553
- </li>
554
- <li>
555
- A1.3
556
- <a href="./Appendix-A:-Git-in-Other-Environments-Git-in-Visual-Studio-Code.html" >Git in Visual Studio Code </a>
557
- </li>
558
- <li>
559
- A1.4
560
- <a href="./Appendix-A:-Git-in-Other-Environments-Git-in-IntelliJ-%252F-PyCharm-%252F-WebStorm-%252F-PhpStorm-%252F-RubyMine.html" >Git in IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine </a>
561
- </li>
562
- <li>
563
- A1.5
564
- <a href="./Appendix-A:-Git-in-Other-Environments-Git-in-Sublime-Text.html" >Git in Sublime Text </a>
565
- </li>
566
- <li>
567
- A1.6
568
- <a href="./Appendix-A:-Git-in-Other-Environments-Git-in-Bash.html" >Git in Bash </a>
569
- </li>
570
- <li>
571
- A1.7
572
- <a href="ch00/oh_my_zsh_git.html" >Git in Zsh </a>
573
- </li>
574
- <li>
575
- A1.8
576
- <a href="./Appendix-A:-Git-in-Other-Environments-Git-in-PowerShell.html" >Git in PowerShell </a>
577
- </li>
578
- <li>
579
- A1.9
580
- <a href="./Appendix-A:-Git-in-Other-Environments-Summary.html" >Summary </a>
581
- </li>
582
- </ol>
583
- </li>
584
- <li class='chapter'>
585
- <h2>A2. <a href="./Appendix-B:-Embedding-Git-in-your-Applications-Command-line-Git.html">Appendix B: Embedding Git in your Applications</a></h2>
586
- <ol>
587
- <li>
588
- A2.1
589
- <a href="./Appendix-B:-Embedding-Git-in-your-Applications-Command-line-Git.html" >Command-line Git </a>
590
- </li>
591
- <li>
592
- A2.2
593
- <a href="ch00/_libgit2_bindings.html" >Libgit2 </a>
594
- </li>
595
- <li>
596
- A2.3
597
- <a href="./Appendix-B:-Embedding-Git-in-your-Applications-JGit.html" >JGit </a>
598
- </li>
599
- <li>
600
- A2.4
601
- <a href="./Appendix-B:-Embedding-Git-in-your-Applications-go-git.html" >go-git </a>
602
- </li>
603
- <li>
604
- A2.5
605
- <a href="./Appendix-B:-Embedding-Git-in-your-Applications-Dulwich.html" >Dulwich </a>
606
- </li>
607
- </ol>
608
- </li>
609
- <li class='chapter'>
610
- <h2>A3. <a href="ch00/ch_core_editor.html">Appendix C: Git Commands</a></h2>
611
- <ol>
612
- <li>
613
- A3.1
614
- <a href="ch00/ch_core_editor.html" >Setup and Config </a>
615
- </li>
616
- <li>
617
- A3.2
618
- <a href="./Appendix-C:-Git-Commands-Getting-and-Creating-Projects.html" >Getting and Creating Projects </a>
619
- </li>
620
- <li>
621
- A3.3
622
- <a href="./Appendix-C:-Git-Commands-Basic-Snapshotting.html" >Basic Snapshotting </a>
623
- </li>
624
- <li>
625
- A3.4
626
- <a href="./Appendix-C:-Git-Commands-Branching-and-Merging.html" >Branching and Merging </a>
627
- </li>
628
- <li>
629
- A3.5
630
- <a href="./Appendix-C:-Git-Commands-Sharing-and-Updating-Projects.html" >Sharing and Updating Projects </a>
631
- </li>
632
- <li>
633
- A3.6
634
- <a href="./Appendix-C:-Git-Commands-Inspection-and-Comparison.html" >Inspection and Comparison </a>
635
- </li>
636
- <li>
637
- A3.7
638
- <a href="./Appendix-C:-Git-Commands-Debugging.html" >Debugging </a>
639
- </li>
640
- <li>
641
- A3.8
642
- <a href="./Appendix-C:-Git-Commands-Patching.html" >Patching </a>
643
- </li>
644
- <li>
645
- A3.9
646
- <a href="./Appendix-C:-Git-Commands-Email.html" >Email </a>
647
- </li>
648
- <li>
649
- A3.10
650
- <a href="./Appendix-C:-Git-Commands-External-Systems.html" >External Systems </a>
651
- </li>
652
- <li>
653
- A3.11
654
- <a href="./Appendix-C:-Git-Commands-Administration.html" >Administration </a>
655
- </li>
656
- <li>
657
- A3.12
658
- <a href="./Appendix-C:-Git-Commands-Plumbing-Commands.html" >Plumbing Commands </a>
659
- </li>
660
- </ol>
661
- </li>
662
- </ol>
663
-
664
- </div>
665
- </div>
666
- </div>
667
-
668
- <span class="light" id="edition">
669
- 2nd Edition
670
- </span>
671
- </div>
672
-
673
- <div id='main' class="book edition2">
674
- <h1>7.7 Git Tools - Reset Demystified</h1>
675
- <div>
676
- <h2 id="_git_reset">Reset Demystified</h2>
677
- <div class="paragraph">
678
- <p>Before moving on to more specialized tools, let’s talk about the Git <code>reset</code> and <code>checkout</code> commands.
679
- These commands are two of the most confusing parts of Git when you first encounter them.
680
- They do so many things that it seems hopeless to actually understand them and employ them properly.
681
- For this, we recommend a simple metaphor.</p>
682
- </div>
683
- <div class="sect3">
684
- <h3 id="_the_three_trees">The Three Trees</h3>
685
- <div class="paragraph">
686
- <p>An easier way to think about <code>reset</code> and <code>checkout</code> is through the mental frame of Git being a content manager of three different trees.
687
- By “tree” here, we really mean “collection of files”, not specifically the data structure.
688
- There are a few cases where the index doesn’t exactly act like a tree, but for our purposes it is easier to think about it this way for now.</p>
689
- </div>
690
- <div class="paragraph">
691
- <p>Git as a system manages and manipulates three trees in its normal operation:</p>
692
- </div>
693
- <table class="tableblock frame-all grid-all stretch">
694
- <colgroup>
695
- <col style="width: 33.3333%;">
696
- <col style="width: 66.6667%;">
697
- </colgroup>
698
- <thead>
699
- <tr>
700
- <th class="tableblock halign-left valign-top">Tree</th>
701
- <th class="tableblock halign-left valign-top">Role</th>
702
- </tr>
703
- </thead>
704
- <tbody>
705
- <tr>
706
- <td class="tableblock halign-left valign-top"><p class="tableblock">HEAD</p></td>
707
- <td class="tableblock halign-left valign-top"><p class="tableblock">Last commit snapshot, next parent</p></td>
708
- </tr>
709
- <tr>
710
- <td class="tableblock halign-left valign-top"><p class="tableblock">Index</p></td>
711
- <td class="tableblock halign-left valign-top"><p class="tableblock">Proposed next commit snapshot</p></td>
712
- </tr>
713
- <tr>
714
- <td class="tableblock halign-left valign-top"><p class="tableblock">Working Directory</p></td>
715
- <td class="tableblock halign-left valign-top"><p class="tableblock">Sandbox</p></td>
716
- </tr>
717
- </tbody>
718
- </table>
719
- <div class="sect4">
720
- <h4 id="_the_head">The HEAD</h4>
721
- <div class="paragraph">
722
- <p>HEAD is the pointer to the current branch reference, which is in turn a pointer to the last commit made on that branch.
723
- That means HEAD will be the parent of the next commit that is created.
724
- It’s generally simplest to think of HEAD as the snapshot of <strong>your last commit on that branch</strong>.</p>
725
- </div>
726
- <div class="paragraph">
727
- <p>In fact, it’s pretty easy to see what that snapshot looks like.
728
- Here is an example of getting the actual directory listing and SHA-1 checksums for each file in the HEAD snapshot:</p>
729
- </div>
730
- <div class="listingblock">
731
- <div class="content">
732
- <pre class="highlight"><code class="language-console" data-lang="console">$ git cat-file -p HEAD
733
- tree cfda3bf379e4f8dba8717dee55aab78aef7f4daf
734
- author Scott Chacon 1301511835 -0700
735
- committer Scott Chacon 1301511835 -0700
736
-
737
- initial commit
738
-
739
- $ git ls-tree -r HEAD
740
- 100644 blob a906cb2a4a904a152... README
741
- 100644 blob 8f94139338f9404f2... Rakefile
742
- 040000 tree 99f1a6d12cb4b6f19... lib</code></pre>
743
- </div>
744
- </div>
745
- <div class="paragraph">
746
- <p>The Git <code>cat-file</code> and <code>ls-tree</code> commands are “plumbing” commands that are used for lower level things and not really used in day-to-day work, but they help us see what’s going on here.</p>
747
- </div>
748
- </div>
749
- <div class="sect4">
750
- <h4 id="_the_index">The Index</h4>
751
- <div class="paragraph">
752
- <p>The <em>index</em> is your <strong>proposed next commit</strong>.
753
- We’ve also been referring to this concept as Git’s “Staging Area” as this is what Git looks at when you run <code>git commit</code>.</p>
754
- </div>
755
- <div class="paragraph">
756
- <p>Git populates this index with a list of all the file contents that were last checked out into your working directory and what they looked like when they were originally checked out.
757
- You then replace some of those files with new versions of them, and <code>git commit</code> converts that into the tree for a new commit.</p>
758
- </div>
759
- <div class="listingblock">
760
- <div class="content">
761
- <pre class="highlight"><code class="language-console" data-lang="console">$ git ls-files -s
762
- 100644 a906cb2a4a904a152e80877d4088654daad0c859 0 README
763
- 100644 8f94139338f9404f26296befa88755fc2598c289 0 Rakefile
764
- 100644 47c6340d6459e05787f644c2447d2595f5d3a54b 0 lib/simplegit.rb</code></pre>
765
- </div>
766
- </div>
767
- <div class="paragraph">
768
- <p>Again, here we’re using <code>git ls-files</code>, which is more of a behind the scenes command that shows you what your index currently looks like.</p>
769
- </div>
770
- <div class="paragraph">
771
- <p>The index is not technically a tree structure — it’s actually implemented as a flattened manifest — but for our purposes it’s close enough.</p>
772
- </div>
773
- </div>
774
- <div class="sect4">
775
- <h4 id="_the_working_directory">The Working Directory</h4>
776
- <div class="paragraph">
777
- <p>Finally, you have your <em>working directory</em> (also commonly referred to as the “working tree”).
778
- The other two trees store their content in an efficient but inconvenient manner, inside the <code>.git</code> folder.
779
- The working directory unpacks them into actual files, which makes it much easier for you to edit them.
780
- Think of the working directory as a <strong>sandbox</strong>, where you can try changes out before committing them to your staging area (index) and then to history.</p>
781
- </div>
782
- <div class="listingblock">
783
- <div class="content">
784
- <pre class="highlight"><code class="language-console" data-lang="console">$ tree
785
- .
786
- ├── README
787
- ├── Rakefile
788
- └── lib
789
- └── simplegit.rb
790
-
791
- 1 directory, 3 files</code></pre>
792
- </div>
793
- </div>
794
- </div>
795
- </div>
796
- <div class="sect3">
797
- <h3 id="_the_workflow">The Workflow</h3>
798
- <div class="paragraph">
799
- <p>Git’s typical workflow is to record snapshots of your project in successively better states, by manipulating these three trees.</p>
800
- </div>
801
- <div class="imageblock">
802
- <div class="content">
803
- <img src="images/reset-workflow.png" alt="reset workflow">
804
- </div>
805
- </div>
806
- <div class="paragraph">
807
- <p>Let’s visualize this process: say you go into a new directory with a single file in it.
808
- We’ll call this <strong>v1</strong> of the file, and we’ll indicate it in blue.
809
- Now we run <code>git init</code>, which will create a Git repository with a HEAD reference which points to the unborn <code>master</code> branch.</p>
810
- </div>
811
- <div class="imageblock">
812
- <div class="content">
813
- <img src="images/reset-ex1.png" alt="reset ex1">
814
- </div>
815
- </div>
816
- <div class="paragraph">
817
- <p>At this point, only the working directory tree has any content.</p>
818
- </div>
819
- <div class="paragraph">
820
- <p>Now we want to commit this file, so we use <code>git add</code> to take content in the working directory and copy it to the index.</p>
821
- </div>
822
- <div class="imageblock">
823
- <div class="content">
824
- <img src="images/reset-ex2.png" alt="reset ex2">
825
- </div>
826
- </div>
827
- <div class="paragraph">
828
- <p>Then we run <code>git commit</code>, which takes the contents of the index and saves it as a permanent snapshot, creates a commit object which points to that snapshot, and updates <code>master</code> to point to that commit.</p>
829
- </div>
830
- <div class="imageblock">
831
- <div class="content">
832
- <img src="images/reset-ex3.png" alt="reset ex3">
833
- </div>
834
- </div>
835
- <div class="paragraph">
836
- <p>If we run <code>git status</code>, we’ll see no changes, because all three trees are the same.</p>
837
- </div>
838
- <div class="paragraph">
839
- <p>Now we want to make a change to that file and commit it.
840
- We’ll go through the same process; first, we change the file in our working directory.
841
- Let’s call this <strong>v2</strong> of the file, and indicate it in red.</p>
842
- </div>
843
- <div class="imageblock">
844
- <div class="content">
845
- <img src="images/reset-ex4.png" alt="reset ex4">
846
- </div>
847
- </div>
848
- <div class="paragraph">
849
- <p>If we run <code>git status</code> right now, we’ll see the file in red as “Changes not staged for commit”, because that entry differs between the index and the working directory.
850
- Next we run <code>git add</code> on it to stage it into our index.</p>
851
- </div>
852
- <div class="imageblock">
853
- <div class="content">
854
- <img src="images/reset-ex5.png" alt="reset ex5">
855
- </div>
856
- </div>
857
- <div class="paragraph">
858
- <p>At this point, if we run <code>git status</code>, we will see the file in green under “Changes to be committed” because the index and HEAD differ — that is, our proposed next commit is now different from our last commit.
859
- Finally, we run <code>git commit</code> to finalize the commit.</p>
860
- </div>
861
- <div class="imageblock">
862
- <div class="content">
863
- <img src="images/reset-ex6.png" alt="reset ex6">
864
- </div>
865
- </div>
866
- <div class="paragraph">
867
- <p>Now <code>git status</code> will give us no output, because all three trees are the same again.</p>
868
- </div>
869
- <div class="paragraph">
870
- <p>Switching branches or cloning goes through a similar process.
871
- When you checkout a branch, it changes <strong>HEAD</strong> to point to the new branch ref, populates your <strong>index</strong> with the snapshot of that commit, then copies the contents of the <strong>index</strong> into your <strong>working directory</strong>.</p>
872
- </div>
873
- </div>
874
- <div class="sect3">
875
- <h3 id="_the_role_of_reset">The Role of Reset</h3>
876
- <div class="paragraph">
877
- <p>The <code>reset</code> command makes more sense when viewed in this context.</p>
878
- </div>
879
- <div class="paragraph">
880
- <p>For the purposes of these examples, let’s say that we’ve modified <code>file.txt</code> again and committed it a third time.
881
- So now our history looks like this:</p>
882
- </div>
883
- <div class="imageblock">
884
- <div class="content">
885
- <img src="images/reset-start.png" alt="reset start">
886
- </div>
887
- </div>
888
- <div class="paragraph">
889
- <p>Let’s now walk through exactly what <code>reset</code> does when you call it.
890
- It directly manipulates these three trees in a simple and predictable way.
891
- It does up to three basic operations.</p>
892
- </div>
893
- <div class="sect4">
894
- <h4 id="_step_1_move_head">Step 1: Move HEAD</h4>
895
- <div class="paragraph">
896
- <p>The first thing <code>reset</code> will do is move what HEAD points to.
897
- This isn’t the same as changing HEAD itself (which is what <code>checkout</code> does); <code>reset</code> moves the branch that HEAD is pointing to.
898
- This means if HEAD is set to the <code>master</code> branch (i.e. you’re currently on the <code>master</code> branch), running <code>git reset 9e5e6a4</code> will start by making <code>master</code> point to <code>9e5e6a4</code>.</p>
899
- </div>
900
- <div class="imageblock">
901
- <div class="content">
902
- <img src="images/reset-soft.png" alt="reset soft">
903
- </div>
904
- </div>
905
- <div class="paragraph">
906
- <p>No matter what form of <code>reset</code> with a commit you invoke, this is the first thing it will always try to do.
907
- With <code>reset --soft</code>, it will simply stop there.</p>
908
- </div>
909
- <div class="paragraph">
910
- <p>Now take a second to look at that diagram and realize what happened: it essentially undid the last <code>git commit</code> command.
911
- When you run <code>git commit</code>, Git creates a new commit and moves the branch that HEAD points to up to it.
912
- When you <code>reset</code> back to <code>HEAD~</code> (the parent of HEAD), you are moving the branch back to where it was, without changing the index or working directory.
913
- You could now update the index and run <code>git commit</code> again to accomplish what <code>git commit --amend</code> would have done (see <a href="ch00/_git_amend.html">Changing the Last Commit</a>).</p>
914
- </div>
915
- </div>
916
- <div class="sect4">
917
- <h4 id="_step_2_updating_the_index_mixed">Step 2: Updating the Index (--mixed)</h4>
918
- <div class="paragraph">
919
- <p>Note that if you run <code>git status</code> now you’ll see in green the difference between the index and what the new HEAD is.</p>
920
- </div>
921
- <div class="paragraph">
922
- <p>The next thing <code>reset</code> will do is to update the index with the contents of whatever snapshot HEAD now points to.</p>
923
- </div>
924
- <div class="imageblock">
925
- <div class="content">
926
- <img src="images/reset-mixed.png" alt="reset mixed">
927
- </div>
928
- </div>
929
- <div class="paragraph">
930
- <p>If you specify the <code>--mixed</code> option, <code>reset</code> will stop at this point.
931
- This is also the default, so if you specify no option at all (just <code>git reset HEAD~</code> in this case), this is where the command will stop.</p>
932
- </div>
933
- <div class="paragraph">
934
- <p>Now take another second to look at that diagram and realize what happened: it still undid your last <code>commit</code>, but also <em>unstaged</em> everything.
935
- You rolled back to before you ran all your <code>git add</code> and <code>git commit</code> commands.</p>
936
- </div>
937
- </div>
938
- <div class="sect4">
939
- <h4 id="_step_3_updating_the_working_directory_hard">Step 3: Updating the Working Directory (--hard)</h4>
940
- <div class="paragraph">
941
- <p>The third thing that <code>reset</code> will do is to make the working directory look like the index.
942
- If you use the <code>--hard</code> option, it will continue to this stage.</p>
943
- </div>
944
- <div class="imageblock">
945
- <div class="content">
946
- <img src="images/reset-hard.png" alt="reset hard">
947
- </div>
948
- </div>
949
- <div class="paragraph">
950
- <p>So let’s think about what just happened.
951
- You undid your last commit, the <code>git add</code> and <code>git commit</code> commands, <strong>and</strong> all the work you did in your working directory.</p>
952
- </div>
953
- <div class="paragraph">
954
- <p>It’s important to note that this flag (<code>--hard</code>) is the only way to make the <code>reset</code> command dangerous, and one of the very few cases where Git will actually destroy data.
955
- Any other invocation of <code>reset</code> can be pretty easily undone, but the <code>--hard</code> option cannot, since it forcibly overwrites files in the working directory.
956
- In this particular case, we still have the <strong>v3</strong> version of our file in a commit in our Git DB, and we could get it back by looking at our <code>reflog</code>, but if we had not committed it, Git still would have overwritten the file and it would be unrecoverable.</p>
957
- </div>
958
- </div>
959
- <div class="sect4">
960
- <h4 id="_recap">Recap</h4>
961
- <div class="paragraph">
962
- <p>The <code>reset</code> command overwrites these three trees in a specific order, stopping when you tell it to:</p>
963
- </div>
964
- <div class="olist arabic">
965
- <ol class="arabic">
966
- <li>
967
- <p>Move the branch HEAD points to <em>(stop here if <code>--soft</code>)</em>.</p>
968
- </li>
969
- <li>
970
- <p>Make the index look like HEAD <em>(stop here unless <code>--hard</code>)</em>.</p>
971
- </li>
972
- <li>
973
- <p>Make the working directory look like the index.</p>
974
- </li>
975
- </ol>
976
- </div>
977
- </div>
978
- </div>
979
- <div class="sect3">
980
- <h3 id="_reset_with_a_path">Reset With a Path</h3>
981
- <div class="paragraph">
982
- <p>That covers the behavior of <code>reset</code> in its basic form, but you can also provide it with a path to act upon.
983
- If you specify a path, <code>reset</code> will skip step 1, and limit the remainder of its actions to a specific file or set of files.
984
- This actually sort of makes sense — HEAD is just a pointer, and you can’t point to part of one commit and part of another.
985
- But the index and working directory <em>can</em> be partially updated, so reset proceeds with steps 2 and 3.</p>
986
- </div>
987
- <div class="paragraph">
988
- <p>So, assume we run <code>git reset file.txt</code>.
989
- This form (since you did not specify a commit SHA-1 or branch, and you didn’t specify <code>--soft</code> or <code>--hard</code>) is shorthand for <code>git reset --mixed HEAD file.txt</code>, which will:</p>
990
- </div>
991
- <div class="olist arabic">
992
- <ol class="arabic">
993
- <li>
994
- <p>Move the branch HEAD points to <em>(skipped)</em>.</p>
995
- </li>
996
- <li>
997
- <p>Make the index look like HEAD <em>(stop here)</em>.</p>
998
- </li>
999
- </ol>
1000
- </div>
1001
- <div class="paragraph">
1002
- <p>So it essentially just copies <code>file.txt</code> from HEAD to the index.</p>
1003
- </div>
1004
- <div class="imageblock">
1005
- <div class="content">
1006
- <img src="images/reset-path1.png" alt="reset path1">
1007
- </div>
1008
- </div>
1009
- <div class="paragraph">
1010
- <p>This has the practical effect of <em>unstaging</em> the file.
1011
- If we look at the diagram for that command and think about what <code>git add</code> does, they are exact opposites.</p>
1012
- </div>
1013
- <div class="imageblock">
1014
- <div class="content">
1015
- <img src="images/reset-path2.png" alt="reset path2">
1016
- </div>
1017
- </div>
1018
- <div class="paragraph">
1019
- <p>This is why the output of the <code>git status</code> command suggests that you run this to unstage a file (see <a href="ch00/_unstaging.html">Unstaging a Staged File</a> for more on this).</p>
1020
- </div>
1021
- <div class="paragraph">
1022
- <p>We could just as easily not let Git assume we meant “pull the data from HEAD” by specifying a specific commit to pull that file version from.
1023
- We would just run something like <code>git reset eb43bf file.txt</code>.</p>
1024
- </div>
1025
- <div class="imageblock">
1026
- <div class="content">
1027
- <img src="images/reset-path3.png" alt="reset path3">
1028
- </div>
1029
- </div>
1030
- <div class="paragraph">
1031
- <p>This effectively does the same thing as if we had reverted the content of the file to <strong>v1</strong> in the working directory, ran <code>git add</code> on it, then reverted it back to <strong>v3</strong> again (without actually going through all those steps).
1032
- If we run <code>git commit</code> now, it will record a change that reverts that file back to <strong>v1</strong>, even though we never actually had it in our working directory again.</p>
1033
- </div>
1034
- <div class="paragraph">
1035
- <p>It’s also interesting to note that like <code>git add</code>, the <code>reset</code> command will accept a <code>--patch</code> option to unstage content on a hunk-by-hunk basis.
1036
- So you can selectively unstage or revert content.</p>
1037
- </div>
1038
- </div>
1039
- <div class="sect3">
1040
- <h3 id="_squashing_2">Squashing</h3>
1041
- <div class="paragraph">
1042
- <p>Let’s look at how to do something interesting with this newfound power — squashing commits.</p>
1043
- </div>
1044
- <div class="paragraph">
1045
- <p>Say you have a series of commits with messages like “oops.”, “WIP” and “forgot this file”.
1046
- You can use <code>reset</code> to quickly and easily squash them into a single commit that makes you look really smart.
1047
- <a href="ch00/_squashing.html">Squashing Commits</a> shows another way to do this, but in this example it’s simpler to use <code>reset</code>.</p>
1048
- </div>
1049
- <div class="paragraph">
1050
- <p>Let’s say you have a project where the first commit has one file, the second commit added a new file and changed the first, and the third commit changed the first file again.
1051
- The second commit was a work in progress and you want to squash it down.</p>
1052
- </div>
1053
- <div class="imageblock">
1054
- <div class="content">
1055
- <img src="images/reset-squash-r1.png" alt="reset squash r1">
1056
- </div>
1057
- </div>
1058
- <div class="paragraph">
1059
- <p>You can run <code>git reset --soft HEAD~2</code> to move the HEAD branch back to an older commit (the most recent commit you want to keep):</p>
1060
- </div>
1061
- <div class="imageblock">
1062
- <div class="content">
1063
- <img src="images/reset-squash-r2.png" alt="reset squash r2">
1064
- </div>
1065
- </div>
1066
- <div class="paragraph">
1067
- <p>And then simply run <code>git commit</code> again:</p>
1068
- </div>
1069
- <div class="imageblock">
1070
- <div class="content">
1071
- <img src="images/reset-squash-r3.png" alt="reset squash r3">
1072
- </div>
1073
- </div>
1074
- <div class="paragraph">
1075
- <p>Now you can see that your reachable history, the history you would push, now looks like you had one commit with <code>file-a.txt</code> v1, then a second that both modified <code>file-a.txt</code> to v3 and added <code>file-b.txt</code>.
1076
- The commit with the v2 version of the file is no longer in the history.</p>
1077
- </div>
1078
- </div>
1079
- <div class="sect3">
1080
- <h3 id="_check_it_out">Check It Out</h3>
1081
- <div class="paragraph">
1082
- <p>Finally, you may wonder what the difference between <code>checkout</code> and <code>reset</code> is.
1083
- Like <code>reset</code>, <code>checkout</code> manipulates the three trees, and it is a bit different depending on whether you give the command a file path or not.</p>
1084
- </div>
1085
- <div class="sect4">
1086
- <h4 id="_without_paths">Without Paths</h4>
1087
- <div class="paragraph">
1088
- <p>Running <code>git checkout [branch]</code> is pretty similar to running <code>git reset --hard [branch]</code> in that it updates all three trees for you to look like <code>[branch]</code>, but there are two important differences.</p>
1089
- </div>
1090
- <div class="paragraph">
1091
- <p>First, unlike <code>reset --hard</code>, <code>checkout</code> is working-directory safe; it will check to make sure it’s not blowing away files that have changes to them.
1092
- Actually, it’s a bit smarter than that — it tries to do a trivial merge in the working directory, so all of the files you <em>haven’t</em> changed will be updated.
1093
- <code>reset --hard</code>, on the other hand, will simply replace everything across the board without checking.</p>
1094
- </div>
1095
- <div class="paragraph">
1096
- <p>The second important difference is how <code>checkout</code> updates HEAD.
1097
- Whereas <code>reset</code> will move the branch that HEAD points to, <code>checkout</code> will move HEAD itself to point to another branch.</p>
1098
- </div>
1099
- <div class="paragraph">
1100
- <p>For instance, say we have <code>master</code> and <code>develop</code> branches which point at different commits, and we’re currently on <code>develop</code> (so HEAD points to it).
1101
- If we run <code>git reset master</code>, <code>develop</code> itself will now point to the same commit that <code>master</code> does.
1102
- If we instead run <code>git checkout master</code>, <code>develop</code> does not move, HEAD itself does.
1103
- HEAD will now point to <code>master</code>.</p>
1104
- </div>
1105
- <div class="paragraph">
1106
- <p>So, in both cases we’re moving HEAD to point to commit A, but <em>how</em> we do so is very different.
1107
- <code>reset</code> will move the branch HEAD points to, <code>checkout</code> moves HEAD itself.</p>
1108
- </div>
1109
- <div class="imageblock">
1110
- <div class="content">
1111
- <img src="images/reset-checkout.png" alt="reset checkout">
1112
- </div>
1113
- </div>
1114
- </div>
1115
- <div class="sect4">
1116
- <h4 id="_with_paths">With Paths</h4>
1117
- <div class="paragraph">
1118
- <p>The other way to run <code>checkout</code> is with a file path, which, like <code>reset</code>, does not move HEAD.
1119
- It is just like <code>git reset [branch] file</code> in that it updates the index with that file at that commit, but it also overwrites the file in the working directory.
1120
- It would be exactly like <code>git reset --hard [branch] file</code> (if <code>reset</code> would let you run that) — it’s not working-directory safe, and it does not move HEAD.</p>
1121
- </div>
1122
- <div class="paragraph">
1123
- <p>Also, like <code>git reset</code> and <code>git add</code>, <code>checkout</code> will accept a <code>--patch</code> option to allow you to selectively revert file contents on a hunk-by-hunk basis.</p>
1124
- </div>
1125
- </div>
1126
- </div>
1127
- <div class="sect3">
1128
- <h3 id="_summary_8">Summary</h3>
1129
- <div class="paragraph">
1130
- <p>Hopefully now you understand and feel more comfortable with the <code>reset</code> command, but are probably still a little confused about how exactly it differs from <code>checkout</code> and could not possibly remember all the rules of the different invocations.</p>
1131
- </div>
1132
- <div class="paragraph">
1133
- <p>Here’s a cheat-sheet for which commands affect which trees.
1134
- The “HEAD” column reads “REF” if that command moves the reference (branch) that HEAD points to, and “HEAD” if it moves HEAD itself.
1135
- Pay especial attention to the 'WD Safe?' column — if it says <strong>NO</strong>, take a second to think before running that command.</p>
1136
- </div>
1137
- <table class="tableblock frame-all grid-all stretch">
1138
- <colgroup>
1139
- <col style="width: 42.8571%;">
1140
- <col style="width: 14.2857%;">
1141
- <col style="width: 14.2857%;">
1142
- <col style="width: 14.2857%;">
1143
- <col style="width: 14.2858%;">
1144
- </colgroup>
1145
- <thead>
1146
- <tr>
1147
- <th class="tableblock halign-left valign-top"></th>
1148
- <th class="tableblock halign-left valign-top">HEAD</th>
1149
- <th class="tableblock halign-left valign-top">Index</th>
1150
- <th class="tableblock halign-left valign-top">Workdir</th>
1151
- <th class="tableblock halign-left valign-top">WD Safe?</th>
1152
- </tr>
1153
- </thead>
1154
- <tbody>
1155
- <tr>
1156
- <td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Commit Level</strong></p></td>
1157
- <td class="tableblock halign-left valign-top"></td>
1158
- <td class="tableblock halign-left valign-top"></td>
1159
- <td class="tableblock halign-left valign-top"></td>
1160
- <td class="tableblock halign-left valign-top"></td>
1161
- </tr>
1162
- <tr>
1163
- <td class="tableblock halign-left valign-top"><p class="tableblock"><code>reset --soft [commit]</code></p></td>
1164
- <td class="tableblock halign-left valign-top"><p class="tableblock">REF</p></td>
1165
- <td class="tableblock halign-left valign-top"><p class="tableblock">NO</p></td>
1166
- <td class="tableblock halign-left valign-top"><p class="tableblock">NO</p></td>
1167
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1168
- </tr>
1169
- <tr>
1170
- <td class="tableblock halign-left valign-top"><p class="tableblock"><code>reset [commit]</code></p></td>
1171
- <td class="tableblock halign-left valign-top"><p class="tableblock">REF</p></td>
1172
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1173
- <td class="tableblock halign-left valign-top"><p class="tableblock">NO</p></td>
1174
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1175
- </tr>
1176
- <tr>
1177
- <td class="tableblock halign-left valign-top"><p class="tableblock"><code>reset --hard [commit]</code></p></td>
1178
- <td class="tableblock halign-left valign-top"><p class="tableblock">REF</p></td>
1179
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1180
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1181
- <td class="tableblock halign-left valign-top"><p class="tableblock"><strong>NO</strong></p></td>
1182
- </tr>
1183
- <tr>
1184
- <td class="tableblock halign-left valign-top"><p class="tableblock"><code>checkout &lt;commit&gt;</code></p></td>
1185
- <td class="tableblock halign-left valign-top"><p class="tableblock">HEAD</p></td>
1186
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1187
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1188
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1189
- </tr>
1190
- <tr>
1191
- <td class="tableblock halign-left valign-top"><p class="tableblock"><strong>File Level</strong></p></td>
1192
- <td class="tableblock halign-left valign-top"></td>
1193
- <td class="tableblock halign-left valign-top"></td>
1194
- <td class="tableblock halign-left valign-top"></td>
1195
- <td class="tableblock halign-left valign-top"></td>
1196
- </tr>
1197
- <tr>
1198
- <td class="tableblock halign-left valign-top"><p class="tableblock"><code>reset [commit] &lt;paths&gt;</code></p></td>
1199
- <td class="tableblock halign-left valign-top"><p class="tableblock">NO</p></td>
1200
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1201
- <td class="tableblock halign-left valign-top"><p class="tableblock">NO</p></td>
1202
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1203
- </tr>
1204
- <tr>
1205
- <td class="tableblock halign-left valign-top"><p class="tableblock"><code>checkout [commit] &lt;paths&gt;</code></p></td>
1206
- <td class="tableblock halign-left valign-top"><p class="tableblock">NO</p></td>
1207
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1208
- <td class="tableblock halign-left valign-top"><p class="tableblock">YES</p></td>
1209
- <td class="tableblock halign-left valign-top"><p class="tableblock"><strong>NO</strong></p></td>
1210
- </tr>
1211
- </tbody>
1212
- </table>
1213
- </div>
1214
- <div id="nav"><a href="ch00/_removing_file_every_commit.html">prev</a> | <a href="ch00/_reverse_commit.html">next</a></div></div>
1215
- </div>
1216
-
1217
- </div>
1218
- </div>
1219
- <footer>
1220
- <div class="site-source">
1221
- <a href="https://git-scm.com/site">About this site</a><br>
1222
- Patches, suggestions, and comments are welcome.
1223
- </div>
1224
- <div class="sfc-member">
1225
- Git is a member of <a href="https://git-scm.com/sfc">Software Freedom Conservancy</a>
1226
- </div>
1227
- </footer>
1228
- <a href="ch00/_the_index.html#top" class="no-js scrollToTop" id="scrollToTop" data-label="Scroll to top">
1229
- <img src="../../../images/icons/chevron-up@2x.png" width="20" height="20" alt="scroll-to-top"/>
1230
- </a>
1231
- <script src="../../../assets/application-38b0d42ff05ffea45841edebbd14b75b89585646153808e82907c2c5c11f324b.js"></script>
1232
-
1233
- </div>
1234
-
1235
- </body>
1236
- </html>