wayfarer 0.4.8 → 0.4.10

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 (615) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yaml +0 -2
  3. data/Gemfile.lock +1 -1
  4. data/docs/guides/development.md +18 -26
  5. data/docs/guides/networking/custom_adapters.md +93 -86
  6. data/docs/guides/networking/http.md +1 -1
  7. data/docs/guides/routing.md +1 -1
  8. data/docs/guides/tutorial.md +1 -2
  9. data/lib/wayfarer/cli.rb +16 -0
  10. data/lib/wayfarer/logging.rb +3 -4
  11. data/lib/wayfarer/middleware/base.rb +0 -4
  12. data/lib/wayfarer/middleware/controller.rb +1 -1
  13. data/lib/wayfarer/networking/context.rb +1 -1
  14. data/lib/wayfarer/networking/ferrum.rb +1 -1
  15. data/lib/wayfarer/networking/pool.rb +3 -9
  16. data/lib/wayfarer/networking/strategy.rb +6 -2
  17. data/lib/wayfarer/parsing.rb +1 -1
  18. data/lib/wayfarer.rb +9 -4
  19. data/rake/release.rake +0 -6
  20. data/spec/spec_helpers.rb +1 -1
  21. data/spec/wayfarer/integration/page_spec.rb +9 -9
  22. data/spec/wayfarer/integration/parsing_spec.rb +3 -2
  23. data/spec/wayfarer/integration/stage_spec.rb +3 -3
  24. data/spec/wayfarer/middleware/controller_spec.rb +3 -4
  25. data/spec/wayfarer/networking/context_spec.rb +3 -2
  26. data/spec/wayfarer/networking/pool_spec.rb +1 -1
  27. data/spec/wayfarer/networking/strategy.rb +2 -2
  28. data/wayfarer.gemspec +1 -1
  29. metadata +1 -1172
  30. data/lib/wayfarer/middleware/lazy.rb +0 -11
  31. data/spec/support/static/git-scm.com/assets/application-38b0d42ff05ffea45841edebbd14b75b89585646153808e82907c2c5c11f324b.js +0 -772
  32. data/spec/support/static/git-scm.com/assets/application-cafcf280f67db0e6d8168ba98a38da878769a9d5f37793b68ffb963a02d185e0.css +0 -1
  33. data/spec/support/static/git-scm.com/assets/modernize-b3ebe0c31c24f230dc62179d3e1030d2e57a53b1668d9382c0a27dbd44a94beb.js +0 -20
  34. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Bash.html +0 -751
  35. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-PowerShell.html +0 -804
  36. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Sublime-Text.html +0 -728
  37. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Visual-Studio-Code.html +0 -751
  38. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Visual-Studio.html +0 -740
  39. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Zsh.html +0 -765
  40. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Graphical-Interfaces.html +0 -931
  41. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Summary.html +0 -702
  42. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-Command-line-Git.html +0 -720
  43. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-Dulwich.html +0 -746
  44. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-JGit.html +0 -889
  45. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-Libgit2.html +0 -1003
  46. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-go-git.html +0 -792
  47. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Administration.html +0 -745
  48. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Basic-Snapshotting.html +0 -840
  49. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Branching-and-Merging.html +0 -829
  50. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Debugging.html +0 -731
  51. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Email.html +0 -766
  52. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-External-Systems.html +0 -721
  53. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Getting-and-Creating-Projects.html +0 -746
  54. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Inspection-and-Comparison.html +0 -735
  55. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Patching.html +0 -742
  56. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Plumbing-Commands.html +0 -715
  57. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Setup-and-Config.html +0 -863
  58. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Sharing-and-Updating-Projects.html +0 -802
  59. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy.html +0 -1200
  60. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Git-Attributes.html +0 -1134
  61. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Git-Configuration.html +0 -1315
  62. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Git-Hooks.html +0 -876
  63. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Summary.html +0 -704
  64. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project.html +0 -1667
  65. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows.html +0 -859
  66. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project.html +0 -1354
  67. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Summary.html +0 -704
  68. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-A-Short-History-of-Git.html +0 -735
  69. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-About-Version-Control.html +0 -783
  70. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup.html +0 -889
  71. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-Getting-Help.html +0 -750
  72. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-Installing-Git.html +0 -879
  73. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-Summary.html +0 -704
  74. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-The-Command-Line.html +0 -711
  75. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-What-is-Git?.html +0 -857
  76. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository.html +0 -816
  77. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Git-Aliases.html +0 -775
  78. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository.html +0 -1432
  79. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Summary.html +0 -703
  80. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Tagging.html +0 -1049
  81. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Undoing-Things.html +0 -998
  82. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History.html +0 -1172
  83. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes.html +0 -983
  84. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging.html +0 -1102
  85. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Branch-Management.html +0 -946
  86. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell.html +0 -1020
  87. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Branching-Workflows.html +0 -786
  88. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Rebasing.html +0 -1028
  89. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Remote-Branches.html +0 -1009
  90. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Summary.html +0 -705
  91. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Environment-Variables.html +0 -1009
  92. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Git-Objects.html +0 -1209
  93. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Git-References.html +0 -939
  94. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery.html +0 -1086
  95. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Packfiles.html +0 -876
  96. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain.html +0 -745
  97. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Summary.html +0 -708
  98. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-The-Refspec.html +0 -872
  99. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Transfer-Protocols.html +0 -1043
  100. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Advanced-Merging.html +0 -1605
  101. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Bundling.html +0 -888
  102. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Credential-Storage.html +0 -1035
  103. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git.html +0 -861
  104. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Interactive-Staging.html +0 -920
  105. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Replace.html +0 -949
  106. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Rerere.html +0 -983
  107. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Reset-Demystified.html +0 -1236
  108. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Revision-Selection.html +0 -1178
  109. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Rewriting-History.html +0 -1182
  110. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Searching.html +0 -875
  111. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work.html +0 -922
  112. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Stashing-and-Cleaning.html +0 -1039
  113. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Submodules.html +0 -1864
  114. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Summary.html +0 -705
  115. data/spec/support/static/git-scm.com/book/en/v2/Git-and-Other-Systems-Git-as-a-Client.html +0 -2656
  116. data/spec/support/static/git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git.html +0 -1741
  117. data/spec/support/static/git-scm.com/book/en/v2/Git-and-Other-Systems-Summary.html +0 -703
  118. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Key.html +0 -759
  119. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server.html +0 -827
  120. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Git-Daemon.html +0 -775
  121. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-GitLab.html +0 -872
  122. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-GitWeb.html +0 -776
  123. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server.html +0 -870
  124. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Smart-HTTP.html +0 -789
  125. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Summary.html +0 -709
  126. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols.html +0 -963
  127. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Third-Party-Hosted-Options.html +0 -711
  128. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Account-Setup-and-Configuration.html +0 -858
  129. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project.html +0 -1502
  130. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Maintaining-a-Project.html +0 -1218
  131. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Managing-an-organization.html +0 -797
  132. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Scripting-GitHub.html +0 -1059
  133. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Summary.html +0 -704
  134. data/spec/support/static/git-scm.com/book/en/v2/ch00/_abort_merge.html +0 -1605
  135. data/spec/support/static/git-scm.com/book/en/v2/ch00/_add_email_addresses.html +0 -858
  136. data/spec/support/static/git-scm.com/book/en/v2/ch00/_advanced_merging.html +0 -1605
  137. data/spec/support/static/git-scm.com/book/en/v2/ch00/_an_example_git_enforced_policy.html +0 -1200
  138. data/spec/support/static/git-scm.com/book/en/v2/ch00/_annotated_tags.html +0 -1049
  139. data/spec/support/static/git-scm.com/book/en/v2/ch00/_api_comment.html +0 -1059
  140. data/spec/support/static/git-scm.com/book/en/v2/ch00/_bare_repo.html +0 -827
  141. data/spec/support/static/git-scm.com/book/en/v2/ch00/_basic_branching.html +0 -1102
  142. data/spec/support/static/git-scm.com/book/en/v2/ch00/_basic_merge_conflicts.html +0 -1102
  143. data/spec/support/static/git-scm.com/book/en/v2/ch00/_basic_merging.html +0 -1102
  144. data/spec/support/static/git-scm.com/book/en/v2/ch00/_binary_search.html +0 -861
  145. data/spec/support/static/git-scm.com/book/en/v2/ch00/_branch_management.html +0 -946
  146. data/spec/support/static/git-scm.com/book/en/v2/ch00/_branch_references.html +0 -1178
  147. data/spec/support/static/git-scm.com/book/en/v2/ch00/_build_number.html +0 -1354
  148. data/spec/support/static/git-scm.com/book/en/v2/ch00/_bundling.html +0 -888
  149. data/spec/support/static/git-scm.com/book/en/v2/ch00/_changing_multiple.html +0 -1182
  150. data/spec/support/static/git-scm.com/book/en/v2/ch00/_checking_out_conflicts.html +0 -1605
  151. data/spec/support/static/git-scm.com/book/en/v2/ch00/_checking_out_remotes.html +0 -1354
  152. data/spec/support/static/git-scm.com/book/en/v2/ch00/_checking_status.html +0 -1432
  153. data/spec/support/static/git-scm.com/book/en/v2/ch00/_cloning_submodules.html +0 -1864
  154. data/spec/support/static/git-scm.com/book/en/v2/ch00/_commit_guidelines.html +0 -1667
  155. data/spec/support/static/git-scm.com/book/en/v2/ch00/_commit_ranges.html +0 -1178
  156. data/spec/support/static/git-scm.com/book/en/v2/ch00/_commit_status.html +0 -1059
  157. data/spec/support/static/git-scm.com/book/en/v2/ch00/_committing_changes.html +0 -1432
  158. data/spec/support/static/git-scm.com/book/en/v2/ch00/_contrib_file.html +0 -1218
  159. data/spec/support/static/git-scm.com/book/en/v2/ch00/_contributing_project.html +0 -1667
  160. data/spec/support/static/git-scm.com/book/en/v2/ch00/_create_new_branch.html +0 -1020
  161. data/spec/support/static/git-scm.com/book/en/v2/ch00/_credential_caching.html +0 -1035
  162. data/spec/support/static/git-scm.com/book/en/v2/ch00/_custom_importer.html +0 -1741
  163. data/spec/support/static/git-scm.com/book/en/v2/ch00/_data_recovery.html +0 -1086
  164. data/spec/support/static/git-scm.com/book/en/v2/ch00/_delete_branches.html +0 -1009
  165. data/spec/support/static/git-scm.com/book/en/v2/ch00/_editor.html +0 -889
  166. data/spec/support/static/git-scm.com/book/en/v2/ch00/_eg_task_lists.html +0 -1502
  167. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_hooks.html +0 -876
  168. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_notification.html +0 -1502
  169. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_notifications.html +0 -1218
  170. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_pr.html +0 -1218
  171. data/spec/support/static/git-scm.com/book/en/v2/ch00/_enforcing_commit_message_format.html +0 -1200
  172. data/spec/support/static/git-scm.com/book/en/v2/ch00/_example_markdown.html +0 -1502
  173. data/spec/support/static/git-scm.com/book/en/v2/ch00/_external_merge_tools.html +0 -1315
  174. data/spec/support/static/git-scm.com/book/en/v2/ch00/_fetch_and_push_on_different_repositories.html +0 -1502
  175. data/spec/support/static/git-scm.com/book/en/v2/ch00/_fetching_and_pulling.html +0 -983
  176. data/spec/support/static/git-scm.com/book/en/v2/ch00/_file_annotation.html +0 -861
  177. data/spec/support/static/git-scm.com/book/en/v2/ch00/_first_time.html +0 -889
  178. data/spec/support/static/git-scm.com/book/en/v2/ch00/_generate_ssh_key.html +0 -759
  179. data/spec/support/static/git-scm.com/book/en/v2/ch00/_getting_a_repo.html +0 -816
  180. data/spec/support/static/git-scm.com/book/en/v2/ch00/_getting_git_on_a_server.html +0 -827
  181. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_aliases.html +0 -775
  182. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_am.html +0 -1354
  183. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_amend.html +0 -1182
  184. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_branches_overview.html +0 -1020
  185. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_clean.html +0 -1039
  186. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_cloning.html +0 -816
  187. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_commit_objects.html +0 -1209
  188. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_config.html +0 -1315
  189. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_diff_staged.html +0 -1432
  190. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_gc.html +0 -1086
  191. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_grep.html +0 -875
  192. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_help.html +0 -750
  193. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_hooks.html +0 -876
  194. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_mv.html +0 -1432
  195. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_p4.html +0 -1741
  196. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_p4_branches.html +0 -2656
  197. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_reflog.html +0 -1178
  198. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_refs.html +0 -939
  199. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_reset.html +0 -1236
  200. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_stashing.html +0 -1039
  201. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_submodules.html +0 -1864
  202. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_svn.html +0 -2656
  203. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_tagging.html +0 -1049
  204. data/spec/support/static/git-scm.com/book/en/v2/ch00/_gitlab_groups_section.html +0 -872
  205. data/spec/support/static/git-scm.com/book/en/v2/ch00/_ignoring.html +0 -1432
  206. data/spec/support/static/git-scm.com/book/en/v2/ch00/_inspecting_remote.html +0 -983
  207. data/spec/support/static/git-scm.com/book/en/v2/ch00/_integration_manager.html +0 -859
  208. data/spec/support/static/git-scm.com/book/en/v2/ch00/_interactive_staging.html +0 -920
  209. data/spec/support/static/git-scm.com/book/en/v2/ch00/_keyword_expansion.html +0 -1134
  210. data/spec/support/static/git-scm.com/book/en/v2/ch00/_libgit2_bindings.html +0 -1003
  211. data/spec/support/static/git-scm.com/book/en/v2/ch00/_manual_remerge.html +0 -1605
  212. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_code.html +0 -1502
  213. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_drag.html +0 -1502
  214. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_emoji.html +0 -1502
  215. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_quote.html +0 -1502
  216. data/spec/support/static/git-scm.com/book/en/v2/ch00/_merge_button.html +0 -1218
  217. data/spec/support/static/git-scm.com/book/en/v2/ch00/_merge_log.html +0 -1605
  218. data/spec/support/static/git-scm.com/book/en/v2/ch00/_merge_rebase_work.html +0 -1028
  219. data/spec/support/static/git-scm.com/book/en/v2/ch00/_new_repo_dropdown.html +0 -1218
  220. data/spec/support/static/git-scm.com/book/en/v2/ch00/_not_center.html +0 -1218
  221. data/spec/support/static/git-scm.com/book/en/v2/ch00/_org_page.html +0 -797
  222. data/spec/support/static/git-scm.com/book/en/v2/ch00/_other_client_hooks.html +0 -876
  223. data/spec/support/static/git-scm.com/book/en/v2/ch00/_p4_git_fusion.html +0 -2656
  224. data/spec/support/static/git-scm.com/book/en/v2/ch00/_patches_from_email.html +0 -1354
  225. data/spec/support/static/git-scm.com/book/en/v2/ch00/_personal_avatar.html +0 -858
  226. data/spec/support/static/git-scm.com/book/en/v2/ch00/_plumbing_porcelain.html +0 -745
  227. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_closed.html +0 -1502
  228. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_discussion.html +0 -1502
  229. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_fail.html +0 -1502
  230. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_final.html +0 -1502
  231. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_references.html +0 -1502
  232. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_references_render.html +0 -1502
  233. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_refs.html +0 -1218
  234. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pre_merge_rebase_work.html +0 -1028
  235. data/spec/support/static/git-scm.com/book/en/v2/ch00/_preparing_release.html +0 -1354
  236. data/spec/support/static/git-scm.com/book/en/v2/ch00/_private_team.html +0 -1667
  237. data/spec/support/static/git-scm.com/book/en/v2/ch00/_project_over_email.html +0 -1667
  238. data/spec/support/static/git-scm.com/book/en/v2/ch00/_public_project.html +0 -1667
  239. data/spec/support/static/git-scm.com/book/en/v2/ch00/_publishing_submodules.html +0 -1864
  240. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pushing_branches.html +0 -1009
  241. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pushing_refspecs.html +0 -872
  242. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pushing_remotes.html +0 -983
  243. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_cherry_pick.html +0 -1354
  244. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_peril.html +0 -1028
  245. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_rebase.html +0 -1028
  246. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_rebase_work.html +0 -1028
  247. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebasing.html +0 -1028
  248. data/spec/support/static/git-scm.com/book/en/v2/ch00/_refspec.html +0 -872
  249. data/spec/support/static/git-scm.com/book/en/v2/ch00/_remote_branches.html +0 -1009
  250. data/spec/support/static/git-scm.com/book/en/v2/ch00/_remote_repos.html +0 -983
  251. data/spec/support/static/git-scm.com/book/en/v2/ch00/_removing_file_every_commit.html +0 -1182
  252. data/spec/support/static/git-scm.com/book/en/v2/ch00/_removing_files.html +0 -1432
  253. data/spec/support/static/git-scm.com/book/en/v2/ch00/_removing_objects.html +0 -1086
  254. data/spec/support/static/git-scm.com/book/en/v2/ch00/_replace.html +0 -949
  255. data/spec/support/static/git-scm.com/book/en/v2/ch00/_reverse_commit.html +0 -1605
  256. data/spec/support/static/git-scm.com/book/en/v2/ch00/_revision_selection.html +0 -1178
  257. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rewriting_history.html +0 -1182
  258. data/spec/support/static/git-scm.com/book/en/v2/ch00/_searching.html +0 -875
  259. data/spec/support/static/git-scm.com/book/en/v2/ch00/_service_config.html +0 -1059
  260. data/spec/support/static/git-scm.com/book/en/v2/ch00/_services_hooks.html +0 -1059
  261. data/spec/support/static/git-scm.com/book/en/v2/ch00/_setting_up_server.html +0 -870
  262. data/spec/support/static/git-scm.com/book/en/v2/ch00/_sharing_tags.html +0 -1049
  263. data/spec/support/static/git-scm.com/book/en/v2/ch00/_signing.html +0 -922
  264. data/spec/support/static/git-scm.com/book/en/v2/ch00/_signing_commits.html +0 -922
  265. data/spec/support/static/git-scm.com/book/en/v2/ch00/_squashing.html +0 -1182
  266. data/spec/support/static/git-scm.com/book/en/v2/ch00/_starting_submodules.html +0 -1864
  267. data/spec/support/static/git-scm.com/book/en/v2/ch00/_subtree_merge.html +0 -1605
  268. data/spec/support/static/git-scm.com/book/en/v2/ch00/_switching_branches.html +0 -1020
  269. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tagging_releases.html +0 -1354
  270. data/spec/support/static/git-scm.com/book/en/v2/ch00/_task_list_progress.html +0 -1502
  271. data/spec/support/static/git-scm.com/book/en/v2/ch00/_team_page.html +0 -797
  272. data/spec/support/static/git-scm.com/book/en/v2/ch00/_the_index.html +0 -1236
  273. data/spec/support/static/git-scm.com/book/en/v2/ch00/_the_shortlog.html +0 -1354
  274. data/spec/support/static/git-scm.com/book/en/v2/ch00/_topic_branch.html +0 -786
  275. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tracking_branches.html +0 -1009
  276. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tracking_files.html +0 -1432
  277. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tree_objects.html +0 -1209
  278. data/spec/support/static/git-scm.com/book/en/v2/ch00/_triple_dot.html +0 -1178
  279. data/spec/support/static/git-scm.com/book/en/v2/ch00/_undoing.html +0 -998
  280. data/spec/support/static/git-scm.com/book/en/v2/ch00/_unstaging.html +0 -998
  281. data/spec/support/static/git-scm.com/book/en/v2/ch00/_viewing_history.html +0 -1172
  282. data/spec/support/static/git-scm.com/book/en/v2/ch00/_web_hook.html +0 -1059
  283. data/spec/support/static/git-scm.com/book/en/v2/ch00/_what_is_introduced.html +0 -1354
  284. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch01-getting-started.html +0 -783
  285. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch02-git-basics-chapter.html +0 -816
  286. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch03-git-branching.html +0 -1020
  287. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch05-distributed-git.html +0 -859
  288. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch06-github.html +0 -858
  289. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch06-github_flow.html +0 -1502
  290. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch10-git-internals.html +0 -745
  291. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch_core_editor.html +0 -863
  292. data/spec/support/static/git-scm.com/book/en/v2/ch00/divergent_history.html +0 -1020
  293. data/spec/support/static/git-scm.com/book/en/v2/ch00/double_dot.html +0 -1178
  294. data/spec/support/static/git-scm.com/book/en/v2/ch00/filters_a.html +0 -1134
  295. data/spec/support/static/git-scm.com/book/en/v2/ch00/filters_b.html +0 -1134
  296. data/spec/support/static/git-scm.com/book/en/v2/ch00/limit_options.html +0 -1172
  297. data/spec/support/static/git-scm.com/book/en/v2/ch00/log_options.html +0 -1172
  298. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_a.html +0 -1354
  299. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_b.html +0 -1354
  300. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_c.html +0 -1354
  301. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_d.html +0 -1354
  302. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_e.html +0 -1354
  303. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_f.html +0 -1354
  304. data/spec/support/static/git-scm.com/book/en/v2/ch00/oh_my_zsh_git.html +0 -765
  305. data/spec/support/static/git-scm.com/book/en/v2/ch00/pretty_format.html +0 -1172
  306. data/spec/support/static/git-scm.com/book/en/v2/ch00/psp_b.html +0 -1667
  307. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_e.html +0 -1028
  308. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_g.html +0 -1028
  309. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_h.html +0 -1028
  310. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_i.html +0 -1028
  311. data/spec/support/static/git-scm.com/book/en/v2/ch00/rebasing-merging-example.html +0 -1028
  312. data/spec/support/static/git-scm.com/book/en/v2/ch00/ref_rerere.html +0 -983
  313. data/spec/support/static/git-scm.com/book/en/v2/ch00/ref_the_ref.html +0 -939
  314. data/spec/support/static/git-scm.com/book/en/v2/ch00/wfdiag_b.html +0 -859
  315. data/spec/support/static/git-scm.com/book/en/v2/ch00/wfdiag_c.html +0 -859
  316. data/spec/support/static/git-scm.com/book/en/v2/ch00/what_is_git_section.html +0 -857
  317. data/spec/support/static/git-scm.com/book/en/v2/images/2fa-1.png +0 -0
  318. data/spec/support/static/git-scm.com/book/en/v2/images/account-settings.png +0 -0
  319. data/spec/support/static/git-scm.com/book/en/v2/images/advance-master.png +0 -0
  320. data/spec/support/static/git-scm.com/book/en/v2/images/advance-testing.png +0 -0
  321. data/spec/support/static/git-scm.com/book/en/v2/images/areas.png +0 -0
  322. data/spec/support/static/git-scm.com/book/en/v2/images/avatar-crop.png +0 -0
  323. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-1.png +0 -0
  324. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-2.png +0 -0
  325. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-3.png +0 -0
  326. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-4.png +0 -0
  327. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-5.png +0 -0
  328. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-6.png +0 -0
  329. data/spec/support/static/git-scm.com/book/en/v2/images/basic-merging-1.png +0 -0
  330. data/spec/support/static/git-scm.com/book/en/v2/images/basic-merging-2.png +0 -0
  331. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-1.png +0 -0
  332. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-2.png +0 -0
  333. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-3.png +0 -0
  334. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-4.png +0 -0
  335. data/spec/support/static/git-scm.com/book/en/v2/images/benevolent-dictator.png +0 -0
  336. data/spec/support/static/git-scm.com/book/en/v2/images/blink-01-start.png +0 -0
  337. data/spec/support/static/git-scm.com/book/en/v2/images/blink-02-pr.png +0 -0
  338. data/spec/support/static/git-scm.com/book/en/v2/images/blink-03-pull-request-open.png +0 -0
  339. data/spec/support/static/git-scm.com/book/en/v2/images/blink-04-email.png +0 -0
  340. data/spec/support/static/git-scm.com/book/en/v2/images/blink-04-pr-comment.png +0 -0
  341. data/spec/support/static/git-scm.com/book/en/v2/images/blink-05-general-comment.png +0 -0
  342. data/spec/support/static/git-scm.com/book/en/v2/images/blink-06-final.png +0 -0
  343. data/spec/support/static/git-scm.com/book/en/v2/images/branch-and-history.png +0 -0
  344. data/spec/support/static/git-scm.com/book/en/v2/images/branch_widget_mac.png +0 -0
  345. data/spec/support/static/git-scm.com/book/en/v2/images/branch_widget_win.png +0 -0
  346. data/spec/support/static/git-scm.com/book/en/v2/images/centralized.png +0 -0
  347. data/spec/support/static/git-scm.com/book/en/v2/images/centralized_workflow.png +0 -0
  348. data/spec/support/static/git-scm.com/book/en/v2/images/checkout-master.png +0 -0
  349. data/spec/support/static/git-scm.com/book/en/v2/images/clean.png +0 -0
  350. data/spec/support/static/git-scm.com/book/en/v2/images/collaborators.png +0 -0
  351. data/spec/support/static/git-scm.com/book/en/v2/images/commit-and-tree.png +0 -0
  352. data/spec/support/static/git-scm.com/book/en/v2/images/commits-and-parents.png +0 -0
  353. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-1.png +0 -0
  354. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-2.png +0 -0
  355. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-3.png +0 -0
  356. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-4.png +0 -0
  357. data/spec/support/static/git-scm.com/book/en/v2/images/deltas.png +0 -0
  358. data/spec/support/static/git-scm.com/book/en/v2/images/distributed.png +0 -0
  359. data/spec/support/static/git-scm.com/book/en/v2/images/double-dot.png +0 -0
  360. data/spec/support/static/git-scm.com/book/en/v2/images/email-settings.png +0 -0
  361. data/spec/support/static/git-scm.com/book/en/v2/images/forkbutton.png +0 -0
  362. data/spec/support/static/git-scm.com/book/en/v2/images/git-bash.png +0 -0
  363. data/spec/support/static/git-scm.com/book/en/v2/images/git-diff-check.png +0 -0
  364. data/spec/support/static/git-scm.com/book/en/v2/images/git-fusion-boot.png +0 -0
  365. data/spec/support/static/git-scm.com/book/en/v2/images/git-fusion-perforce-graph.png +0 -0
  366. data/spec/support/static/git-scm.com/book/en/v2/images/git-gui.png +0 -0
  367. data/spec/support/static/git-scm.com/book/en/v2/images/git-instaweb.png +0 -0
  368. data/spec/support/static/git-scm.com/book/en/v2/images/git-osx-installer.png +0 -0
  369. data/spec/support/static/git-scm.com/book/en/v2/images/github_mac.png +0 -0
  370. data/spec/support/static/git-scm.com/book/en/v2/images/github_win.png +0 -0
  371. data/spec/support/static/git-scm.com/book/en/v2/images/gitk.png +0 -0
  372. data/spec/support/static/git-scm.com/book/en/v2/images/gitlab-groups.png +0 -0
  373. data/spec/support/static/git-scm.com/book/en/v2/images/gitlab-menu.png +0 -0
  374. data/spec/support/static/git-scm.com/book/en/v2/images/gitlab-users.png +0 -0
  375. data/spec/support/static/git-scm.com/book/en/v2/images/head-to-master.png +0 -0
  376. data/spec/support/static/git-scm.com/book/en/v2/images/head-to-testing.png +0 -0
  377. data/spec/support/static/git-scm.com/book/en/v2/images/integration-manager.png +0 -0
  378. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-1.png +0 -0
  379. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-2.png +0 -0
  380. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-3.png +0 -0
  381. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-4.png +0 -0
  382. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-5.png +0 -0
  383. data/spec/support/static/git-scm.com/book/en/v2/images/jb.png +0 -0
  384. data/spec/support/static/git-scm.com/book/en/v2/images/large-merges-1.png +0 -0
  385. data/spec/support/static/git-scm.com/book/en/v2/images/large-merges-2.png +0 -0
  386. data/spec/support/static/git-scm.com/book/en/v2/images/lifecycle.png +0 -0
  387. data/spec/support/static/git-scm.com/book/en/v2/images/local.png +0 -0
  388. data/spec/support/static/git-scm.com/book/en/v2/images/lr-branches-1.png +0 -0
  389. data/spec/support/static/git-scm.com/book/en/v2/images/lr-branches-2.png +0 -0
  390. data/spec/support/static/git-scm.com/book/en/v2/images/maint-01-email.png +0 -0
  391. data/spec/support/static/git-scm.com/book/en/v2/images/maint-02-merge.png +0 -0
  392. data/spec/support/static/git-scm.com/book/en/v2/images/maint-03-email-resp.png +0 -0
  393. data/spec/support/static/git-scm.com/book/en/v2/images/maint-04-target.png +0 -0
  394. data/spec/support/static/git-scm.com/book/en/v2/images/maint-05-mentions.png +0 -0
  395. data/spec/support/static/git-scm.com/book/en/v2/images/maint-06-unsubscribe.png +0 -0
  396. data/spec/support/static/git-scm.com/book/en/v2/images/maint-07-notifications.png +0 -0
  397. data/spec/support/static/git-scm.com/book/en/v2/images/maint-08-notifications-page.png +0 -0
  398. data/spec/support/static/git-scm.com/book/en/v2/images/maint-09-contrib.png +0 -0
  399. data/spec/support/static/git-scm.com/book/en/v2/images/maint-10-default-branch.png +0 -0
  400. data/spec/support/static/git-scm.com/book/en/v2/images/maint-11-transfer.png +0 -0
  401. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-1.png +0 -0
  402. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-2.png +0 -0
  403. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-3.png +0 -0
  404. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-flow.png +0 -0
  405. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-01-example.png +0 -0
  406. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-02-tasks.png +0 -0
  407. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-03-task-summary.png +0 -0
  408. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-04-fenced-code.png +0 -0
  409. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-05-quote.png +0 -0
  410. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-06-emoji-complete.png +0 -0
  411. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-07-emoji.png +0 -0
  412. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-08-drag-drop.png +0 -0
  413. data/spec/support/static/git-scm.com/book/en/v2/images/mentions-01-syntax.png +0 -0
  414. data/spec/support/static/git-scm.com/book/en/v2/images/mentions-02-render.png +0 -0
  415. data/spec/support/static/git-scm.com/book/en/v2/images/mentions-03-closed.png +0 -0
  416. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-1.png +0 -0
  417. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-2.png +0 -0
  418. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-3.png +0 -0
  419. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-4.png +0 -0
  420. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-5.png +0 -0
  421. data/spec/support/static/git-scm.com/book/en/v2/images/new-repo.png +0 -0
  422. data/spec/support/static/git-scm.com/book/en/v2/images/neworg.png +0 -0
  423. data/spec/support/static/git-scm.com/book/en/v2/images/newrepo.png +0 -0
  424. data/spec/support/static/git-scm.com/book/en/v2/images/newrepoform.png +0 -0
  425. data/spec/support/static/git-scm.com/book/en/v2/images/orgs-01-page.png +0 -0
  426. data/spec/support/static/git-scm.com/book/en/v2/images/orgs-02-teams.png +0 -0
  427. data/spec/support/static/git-scm.com/book/en/v2/images/orgs-03-audit.png +0 -0
  428. data/spec/support/static/git-scm.com/book/en/v2/images/p4merge.png +0 -0
  429. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-1.png +0 -0
  430. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-2.png +0 -0
  431. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-3.png +0 -0
  432. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-4.png +0 -0
  433. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-5.png +0 -0
  434. data/spec/support/static/git-scm.com/book/en/v2/images/posh-git.png +0 -0
  435. data/spec/support/static/git-scm.com/book/en/v2/images/pr-01-fail.png +0 -0
  436. data/spec/support/static/git-scm.com/book/en/v2/images/pr-02-merge-fix.png +0 -0
  437. data/spec/support/static/git-scm.com/book/en/v2/images/public-small-1.png +0 -0
  438. data/spec/support/static/git-scm.com/book/en/v2/images/public-small-2.png +0 -0
  439. data/spec/support/static/git-scm.com/book/en/v2/images/public-small-3.png +0 -0
  440. data/spec/support/static/git-scm.com/book/en/v2/images/rebasing-1.png +0 -0
  441. data/spec/support/static/git-scm.com/book/en/v2/images/rebasing-2.png +0 -0
  442. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-1.png +0 -0
  443. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-2.png +0 -0
  444. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-3.png +0 -0
  445. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-4.png +0 -0
  446. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-5.png +0 -0
  447. data/spec/support/static/git-scm.com/book/en/v2/images/replace1.png +0 -0
  448. data/spec/support/static/git-scm.com/book/en/v2/images/replace2.png +0 -0
  449. data/spec/support/static/git-scm.com/book/en/v2/images/replace3.png +0 -0
  450. data/spec/support/static/git-scm.com/book/en/v2/images/replace4.png +0 -0
  451. data/spec/support/static/git-scm.com/book/en/v2/images/replace5.png +0 -0
  452. data/spec/support/static/git-scm.com/book/en/v2/images/reposettingslink.png +0 -0
  453. data/spec/support/static/git-scm.com/book/en/v2/images/rerere1.png +0 -0
  454. data/spec/support/static/git-scm.com/book/en/v2/images/rerere2.png +0 -0
  455. data/spec/support/static/git-scm.com/book/en/v2/images/rerere3.png +0 -0
  456. data/spec/support/static/git-scm.com/book/en/v2/images/reset-checkout.png +0 -0
  457. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex1.png +0 -0
  458. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex2.png +0 -0
  459. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex3.png +0 -0
  460. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex4.png +0 -0
  461. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex5.png +0 -0
  462. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex6.png +0 -0
  463. data/spec/support/static/git-scm.com/book/en/v2/images/reset-hard.png +0 -0
  464. data/spec/support/static/git-scm.com/book/en/v2/images/reset-mixed.png +0 -0
  465. data/spec/support/static/git-scm.com/book/en/v2/images/reset-path1.png +0 -0
  466. data/spec/support/static/git-scm.com/book/en/v2/images/reset-path2.png +0 -0
  467. data/spec/support/static/git-scm.com/book/en/v2/images/reset-path3.png +0 -0
  468. data/spec/support/static/git-scm.com/book/en/v2/images/reset-soft.png +0 -0
  469. data/spec/support/static/git-scm.com/book/en/v2/images/reset-squash-r1.png +0 -0
  470. data/spec/support/static/git-scm.com/book/en/v2/images/reset-squash-r2.png +0 -0
  471. data/spec/support/static/git-scm.com/book/en/v2/images/reset-squash-r3.png +0 -0
  472. data/spec/support/static/git-scm.com/book/en/v2/images/reset-start.png +0 -0
  473. data/spec/support/static/git-scm.com/book/en/v2/images/reset-workflow.png +0 -0
  474. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-01-services.png +0 -0
  475. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-02-email-service.png +0 -0
  476. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-03-webhook.png +0 -0
  477. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-04-webhook-debug.png +0 -0
  478. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-05-access-token.png +0 -0
  479. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-06-comment.png +0 -0
  480. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-07-status.png +0 -0
  481. data/spec/support/static/git-scm.com/book/en/v2/images/signup.png +0 -0
  482. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-1.png +0 -0
  483. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-2.png +0 -0
  484. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-3.png +0 -0
  485. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-4.png +0 -0
  486. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-5.png +0 -0
  487. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-6.png +0 -0
  488. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-7.png +0 -0
  489. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-flow.png +0 -0
  490. data/spec/support/static/git-scm.com/book/en/v2/images/smudge.png +0 -0
  491. data/spec/support/static/git-scm.com/book/en/v2/images/snapshots.png +0 -0
  492. data/spec/support/static/git-scm.com/book/en/v2/images/ssh-keys.png +0 -0
  493. data/spec/support/static/git-scm.com/book/en/v2/images/topic-branches-1.png +0 -0
  494. data/spec/support/static/git-scm.com/book/en/v2/images/topic-branches-2.png +0 -0
  495. data/spec/support/static/git-scm.com/book/en/v2/images/two-branches.png +0 -0
  496. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-reset.png +0 -0
  497. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-revert.png +0 -0
  498. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-revert2.png +0 -0
  499. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-revert3.png +0 -0
  500. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-start.png +0 -0
  501. data/spec/support/static/git-scm.com/book/en/v2/images/your-profile.png +0 -0
  502. data/spec/support/static/git-scm.com/book/en/v2/images/zsh-oh-my.png +0 -0
  503. data/spec/support/static/git-scm.com/book/en/v2/images/zsh-prompt.png +0 -0
  504. data/spec/support/static/git-scm.com/book/en/v2.html +0 -688
  505. data/spec/support/static/git-scm.com/favicon.ico +0 -0
  506. data/spec/support/static/git-scm.com/images/bg/body.jpg +0 -0
  507. data/spec/support/static/git-scm.com/images/bg/isometric-grid.png +0 -0
  508. data/spec/support/static/git-scm.com/images/bg/isometric-grid@2x.png +0 -0
  509. data/spec/support/static/git-scm.com/images/bg/search-header.jpg +0 -0
  510. data/spec/support/static/git-scm.com/images/company-project-logos/android.png +0 -0
  511. data/spec/support/static/git-scm.com/images/company-project-logos/android@2x.png +0 -0
  512. data/spec/support/static/git-scm.com/images/company-project-logos/eclipse.png +0 -0
  513. data/spec/support/static/git-scm.com/images/company-project-logos/eclipse@2x.png +0 -0
  514. data/spec/support/static/git-scm.com/images/company-project-logos/facebook.png +0 -0
  515. data/spec/support/static/git-scm.com/images/company-project-logos/facebook@2x.png +0 -0
  516. data/spec/support/static/git-scm.com/images/company-project-logos/gnome.png +0 -0
  517. data/spec/support/static/git-scm.com/images/company-project-logos/gnome@2x.png +0 -0
  518. data/spec/support/static/git-scm.com/images/company-project-logos/google.png +0 -0
  519. data/spec/support/static/git-scm.com/images/company-project-logos/google@2x.png +0 -0
  520. data/spec/support/static/git-scm.com/images/company-project-logos/kde.png +0 -0
  521. data/spec/support/static/git-scm.com/images/company-project-logos/kde@2x.png +0 -0
  522. data/spec/support/static/git-scm.com/images/company-project-logos/linked-in.png +0 -0
  523. data/spec/support/static/git-scm.com/images/company-project-logos/linked-in@2x.png +0 -0
  524. data/spec/support/static/git-scm.com/images/company-project-logos/linux.png +0 -0
  525. data/spec/support/static/git-scm.com/images/company-project-logos/linux@2x.png +0 -0
  526. data/spec/support/static/git-scm.com/images/company-project-logos/microsoft.png +0 -0
  527. data/spec/support/static/git-scm.com/images/company-project-logos/microsoft@2x.png +0 -0
  528. data/spec/support/static/git-scm.com/images/company-project-logos/netflix.png +0 -0
  529. data/spec/support/static/git-scm.com/images/company-project-logos/netflix@2x.png +0 -0
  530. data/spec/support/static/git-scm.com/images/company-project-logos/perl.png +0 -0
  531. data/spec/support/static/git-scm.com/images/company-project-logos/perl@2x.png +0 -0
  532. data/spec/support/static/git-scm.com/images/company-project-logos/postgresql.png +0 -0
  533. data/spec/support/static/git-scm.com/images/company-project-logos/postgresql@2x.png +0 -0
  534. data/spec/support/static/git-scm.com/images/company-project-logos/qt.png +0 -0
  535. data/spec/support/static/git-scm.com/images/company-project-logos/qt@2x.png +0 -0
  536. data/spec/support/static/git-scm.com/images/company-project-logos/rails.png +0 -0
  537. data/spec/support/static/git-scm.com/images/company-project-logos/rails@2x.png +0 -0
  538. data/spec/support/static/git-scm.com/images/company-project-logos/twitter.png +0 -0
  539. data/spec/support/static/git-scm.com/images/company-project-logos/twitter@2x.png +0 -0
  540. data/spec/support/static/git-scm.com/images/company-project-logos/x.png +0 -0
  541. data/spec/support/static/git-scm.com/images/company-project-logos/x@2x.png +0 -0
  542. data/spec/support/static/git-scm.com/images/epub.png +0 -0
  543. data/spec/support/static/git-scm.com/images/icons/admin-sm.png +0 -0
  544. data/spec/support/static/git-scm.com/images/icons/admin-sm@2x.png +0 -0
  545. data/spec/support/static/git-scm.com/images/icons/apple.png +0 -0
  546. data/spec/support/static/git-scm.com/images/icons/apple@2x.png +0 -0
  547. data/spec/support/static/git-scm.com/images/icons/book.png +0 -0
  548. data/spec/support/static/git-scm.com/images/icons/book@2x.png +0 -0
  549. data/spec/support/static/git-scm.com/images/icons/box.png +0 -0
  550. data/spec/support/static/git-scm.com/images/icons/box@2x.png +0 -0
  551. data/spec/support/static/git-scm.com/images/icons/branch-sm.png +0 -0
  552. data/spec/support/static/git-scm.com/images/icons/branch-sm@2x.png +0 -0
  553. data/spec/support/static/git-scm.com/images/icons/camera-sm.png +0 -0
  554. data/spec/support/static/git-scm.com/images/icons/camera-sm@2x.png +0 -0
  555. data/spec/support/static/git-scm.com/images/icons/chevron-up@2x.png +0 -0
  556. data/spec/support/static/git-scm.com/images/icons/code.png +0 -0
  557. data/spec/support/static/git-scm.com/images/icons/code@2x.png +0 -0
  558. data/spec/support/static/git-scm.com/images/icons/debugging-sm.png +0 -0
  559. data/spec/support/static/git-scm.com/images/icons/debugging-sm@2x.png +0 -0
  560. data/spec/support/static/git-scm.com/images/icons/document.png +0 -0
  561. data/spec/support/static/git-scm.com/images/icons/document@2x.png +0 -0
  562. data/spec/support/static/git-scm.com/images/icons/download.png +0 -0
  563. data/spec/support/static/git-scm.com/images/icons/email-sm.png +0 -0
  564. data/spec/support/static/git-scm.com/images/icons/email-sm@2x.png +0 -0
  565. data/spec/support/static/git-scm.com/images/icons/external-sm.png +0 -0
  566. data/spec/support/static/git-scm.com/images/icons/external-sm@2x.png +0 -0
  567. data/spec/support/static/git-scm.com/images/icons/gui.png +0 -0
  568. data/spec/support/static/git-scm.com/images/icons/gui@2x.png +0 -0
  569. data/spec/support/static/git-scm.com/images/icons/info.png +0 -0
  570. data/spec/support/static/git-scm.com/images/icons/info@2x.png +0 -0
  571. data/spec/support/static/git-scm.com/images/icons/inspection-sm.png +0 -0
  572. data/spec/support/static/git-scm.com/images/icons/inspection-sm@2x.png +0 -0
  573. data/spec/support/static/git-scm.com/images/icons/linux.png +0 -0
  574. data/spec/support/static/git-scm.com/images/icons/linux@2x.png +0 -0
  575. data/spec/support/static/git-scm.com/images/icons/nav-circles.png +0 -0
  576. data/spec/support/static/git-scm.com/images/icons/nav-circles@2x.png +0 -0
  577. data/spec/support/static/git-scm.com/images/icons/patching-sm.png +0 -0
  578. data/spec/support/static/git-scm.com/images/icons/patching-sm@2x.png +0 -0
  579. data/spec/support/static/git-scm.com/images/icons/plumbing-sm.png +0 -0
  580. data/spec/support/static/git-scm.com/images/icons/plumbing-sm@2x.png +0 -0
  581. data/spec/support/static/git-scm.com/images/icons/projects-sm.png +0 -0
  582. data/spec/support/static/git-scm.com/images/icons/projects-sm@2x.png +0 -0
  583. data/spec/support/static/git-scm.com/images/icons/search.png +0 -0
  584. data/spec/support/static/git-scm.com/images/icons/search@2x.png +0 -0
  585. data/spec/support/static/git-scm.com/images/icons/server-admin-sm.png +0 -0
  586. data/spec/support/static/git-scm.com/images/icons/server-admin-sm@2x.png +0 -0
  587. data/spec/support/static/git-scm.com/images/icons/setup-sm.png +0 -0
  588. data/spec/support/static/git-scm.com/images/icons/setup-sm@2x.png +0 -0
  589. data/spec/support/static/git-scm.com/images/icons/sharing-sm.png +0 -0
  590. data/spec/support/static/git-scm.com/images/icons/sharing-sm@2x.png +0 -0
  591. data/spec/support/static/git-scm.com/images/icons/sidebar.png +0 -0
  592. data/spec/support/static/git-scm.com/images/icons/sidebar@2x.png +0 -0
  593. data/spec/support/static/git-scm.com/images/icons/source-code.png +0 -0
  594. data/spec/support/static/git-scm.com/images/icons/source-code@2x.png +0 -0
  595. data/spec/support/static/git-scm.com/images/icons/windows.png +0 -0
  596. data/spec/support/static/git-scm.com/images/icons/windows@2x.png +0 -0
  597. data/spec/support/static/git-scm.com/images/logo@2x.png +0 -0
  598. data/spec/support/static/git-scm.com/images/mobi.png +0 -0
  599. data/spec/support/static/git-scm.com/images/monitor-default.png +0 -0
  600. data/spec/support/static/git-scm.com/images/monitor-default@2x.png +0 -0
  601. data/spec/support/static/git-scm.com/images/monitor-linux.png +0 -0
  602. data/spec/support/static/git-scm.com/images/monitor-linux@2x.png +0 -0
  603. data/spec/support/static/git-scm.com/images/monitor-mac.png +0 -0
  604. data/spec/support/static/git-scm.com/images/monitor-mac@2x.png +0 -0
  605. data/spec/support/static/git-scm.com/images/monitor-windows.png +0 -0
  606. data/spec/support/static/git-scm.com/images/monitor-windows@2x.png +0 -0
  607. data/spec/support/static/git-scm.com/images/pdf.png +0 -0
  608. data/spec/support/static/git-scm.com/images/progit2.png +0 -0
  609. data/spec/support/static/git-scm.com/images/sidebar-divider.png +0 -0
  610. data/spec/support/static/git-scm.com/images/sidebar-divider@2x.png +0 -0
  611. data/spec/support/static/git-scm.com/robots.txt +0 -0
  612. data/spec/support/static/graph/details/a.html +0 -10
  613. data/spec/support/static/graph/details/b.html +0 -10
  614. data/spec/support/static/graph/index.html +0 -20
  615. data/spec/support/static/links/links.html +0 -28
@@ -1,963 +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 - The Protocols</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="Git-on-the-Server-The-Protocols.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" class=active>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" >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>4.1 Git on the Server - The Protocols</h1>
675
- <div><p>
676
- At this point, you should be able to do most of the day-to-day tasks for which you’ll be using Git.
677
- However, in order to do any collaboration in Git, you’ll need to have a remote Git repository.
678
- Although you can technically push changes to and pull changes from individuals' repositories, doing so is discouraged because you can fairly easily confuse what they’re working on if you’re not careful.
679
- Furthermore, you want your collaborators to be able to access the repository even if your computer is offline — having a more reliable common repository is often useful.
680
- Therefore, the preferred method for collaborating with someone is to set up an intermediate repository that you both have access to, and push to and pull from that.</p><p>Running a Git server is fairly straightforward.
681
- First, you choose which protocols you want your server to support.
682
- The first section of this chapter will cover the available protocols and the pros and cons of each.
683
- The next sections will explain some typical setups using those protocols and how to get your server running with them.
684
- Last, we’ll go over a few hosted options, if you don’t mind hosting your code on someone else’s server and don’t want to go through the hassle of setting up and maintaining your own server.</p><p>If you have no interest in running your own server, you can skip to the last section of the chapter to see some options for setting up a hosted account and then move on to the next chapter, where we discuss the various ins and outs of working in a distributed source control environment.</p><p>A remote repository is generally a <em>bare repository</em> — a Git repository that has no working directory.
685
- Because the repository is only used as a collaboration point, there is no reason to have a snapshot checked out on disk; it’s just the Git data.
686
- In the simplest terms, a bare repository is the contents of your project’s <code>.git</code> directory and nothing else.</p>
687
- <h2 id="_the_protocols">The Protocols</h2>
688
- <div class="paragraph">
689
- <p>Git can use four distinct protocols to transfer data: Local, HTTP, Secure Shell (SSH) and Git.
690
- Here we’ll discuss what they are and in what basic circumstances you would want (or not want) to use them.</p>
691
- </div>
692
- <div class="sect3">
693
- <h3 id="_local_protocol">Local Protocol</h3>
694
- <div class="paragraph">
695
- <p>
696
- The most basic is the <em>Local protocol</em>, in which the remote repository is in another directory on the same host.
697
- This is often used if everyone on your team has access to a shared filesystem such as an <a href="https://en.wikipedia.org/wiki/Network_File_System">NFS</a> mount, or in the less likely case that everyone logs in to the same computer.
698
- The latter wouldn’t be ideal, because all your code repository instances would reside on the same computer, making a catastrophic loss much more likely.</p>
699
- </div>
700
- <div class="paragraph">
701
- <p>If you have a shared mounted filesystem, then you can clone, push to, and pull from a local file-based repository.
702
- To clone a repository like this, or to add one as a remote to an existing project, use the path to the repository as the URL.
703
- For example, to clone a local repository, you can run something like this:</p>
704
- </div>
705
- <div class="listingblock">
706
- <div class="content">
707
- <pre class="highlight"><code class="language-console" data-lang="console">$ git clone /srv/git/project.git</code></pre>
708
- </div>
709
- </div>
710
- <div class="paragraph">
711
- <p>Or you can do this:</p>
712
- </div>
713
- <div class="listingblock">
714
- <div class="content">
715
- <pre class="highlight"><code class="language-console" data-lang="console">$ git clone file:///srv/git/project.git</code></pre>
716
- </div>
717
- </div>
718
- <div class="paragraph">
719
- <p>Git operates slightly differently if you explicitly specify <code>file://</code> at the beginning of the URL.
720
- If you just specify the path, Git tries to use hardlinks or directly copy the files it needs.
721
- If you specify <code>file://</code>, Git fires up the processes that it normally uses to transfer data over a network, which is generally much less efficient.
722
- The main reason to specify the <code>file://</code> prefix is if you want a clean copy of the repository with extraneous references or objects left out — generally after an import from another VCS or something similar (see <a href="ch00/ch10-git-internals.html">Git Internals</a> for maintenance tasks).
723
- We’ll use the normal path here because doing so is almost always faster.</p>
724
- </div>
725
- <div class="paragraph">
726
- <p>To add a local repository to an existing Git project, you can run something like this:</p>
727
- </div>
728
- <div class="listingblock">
729
- <div class="content">
730
- <pre class="highlight"><code class="language-console" data-lang="console">$ git remote add local_proj /srv/git/project.git</code></pre>
731
- </div>
732
- </div>
733
- <div class="paragraph">
734
- <p>Then, you can push to and pull from that remote via your new remote name <code>local_proj</code> as though you were doing so over a network.</p>
735
- </div>
736
- <div class="sect4">
737
- <h4 id="_the_pros">The Pros</h4>
738
- <div class="paragraph">
739
- <p>The pros of file-based repositories are that they’re simple and they use existing file permissions and network access.
740
- If you already have a shared filesystem to which your whole team has access, setting up a repository is very easy.
741
- You stick the bare repository copy somewhere everyone has shared access to and set the read/write permissions as you would for any other shared directory.
742
- We’ll discuss how to export a bare repository copy for this purpose in <a href="ch00/_getting_git_on_a_server.html">Getting Git on a Server</a>.</p>
743
- </div>
744
- <div class="paragraph">
745
- <p>This is also a nice option for quickly grabbing work from someone else’s working repository.
746
- If you and a co-worker are working on the same project and they want you to check something out, running a command like <code>git pull /home/john/project</code> is often easier than them pushing to a remote server and you subsequently fetching from it.</p>
747
- </div>
748
- </div>
749
- <div class="sect4">
750
- <h4 id="_the_cons">The Cons</h4>
751
- <div class="paragraph">
752
- <p>The cons of this method are that shared access is generally more difficult to set up and reach from multiple locations than basic network access.
753
- If you want to push from your laptop when you’re at home, you have to mount the remote disk, which can be difficult and slow compared to network-based access.</p>
754
- </div>
755
- <div class="paragraph">
756
- <p>It’s important to mention that this isn’t necessarily the fastest option if you’re using a shared mount of some kind.
757
- A local repository is fast only if you have fast access to the data.
758
- A repository on NFS is often slower than the repository over SSH on the same server, allowing Git to run off local disks on each system.</p>
759
- </div>
760
- <div class="paragraph">
761
- <p>Finally, this protocol does not protect the repository against accidental damage.
762
- Every user has full shell access to the “remote” directory, and there is nothing preventing them from changing or removing internal Git files and corrupting the repository.</p>
763
- </div>
764
- </div>
765
- </div>
766
- <div class="sect3">
767
- <h3 id="_the_http_protocols">The HTTP Protocols</h3>
768
- <div class="paragraph">
769
- <p>Git can communicate over HTTP using two different modes.
770
- Prior to Git 1.6.6, there was only one way it could do this which was very simple and generally read-only.
771
- In version 1.6.6, a new, smarter protocol was introduced that involved Git being able to intelligently negotiate data transfer in a manner similar to how it does over SSH.
772
- In the last few years, this new HTTP protocol has become very popular since it’s simpler for the user and smarter about how it communicates.
773
- The newer version is often referred to as the <em>Smart</em> HTTP protocol and the older way as <em>Dumb</em> HTTP.
774
- We’ll cover the newer Smart HTTP protocol first.</p>
775
- </div>
776
- <div class="sect4">
777
- <h4 id="_smart_http">Smart HTTP</h4>
778
- <div class="paragraph">
779
- <p>
780
- Smart HTTP operates very similarly to the SSH or Git protocols but runs over standard HTTPS ports and can use various HTTP authentication mechanisms, meaning it’s often easier on the user than something like SSH, since you can use things like username/password authentication rather than having to set up SSH keys.</p>
781
- </div>
782
- <div class="paragraph">
783
- <p>It has probably become the most popular way to use Git now, since it can be set up to both serve anonymously like the <code>git://</code> protocol, and can also be pushed over with authentication and encryption like the SSH protocol.
784
- Instead of having to set up different URLs for these things, you can now use a single URL for both.
785
- If you try to push and the repository requires authentication (which it normally should), the server can prompt for a username and password.
786
- The same goes for read access.</p>
787
- </div>
788
- <div class="paragraph">
789
- <p>In fact, for services like GitHub, the URL you use to view the repository online (for example, <a href="https://github.com/schacon/simplegit" class="bare">https://github.com/schacon/simplegit</a>) is the same URL you can use to clone and, if you have access, push over.</p>
790
- </div>
791
- </div>
792
- <div class="sect4">
793
- <h4 id="_dumb_http">Dumb HTTP</h4>
794
- <div class="paragraph">
795
- <p>
796
- If the server does not respond with a Git HTTP smart service, the Git client will try to fall back to the simpler <em>Dumb</em> HTTP protocol.
797
- The Dumb protocol expects the bare Git repository to be served like normal files from the web server.
798
- The beauty of Dumb HTTP is the simplicity of setting it up.
799
- Basically, all you have to do is put a bare Git repository under your HTTP document root and set up a specific <code>post-update</code> hook, and you’re done (See <a href="ch00/_git_hooks.html">Git Hooks</a>).
800
- At that point, anyone who can access the web server under which you put the repository can also clone your repository.
801
- To allow read access to your repository over HTTP, do something like this:</p>
802
- </div>
803
- <div class="listingblock">
804
- <div class="content">
805
- <pre class="highlight"><code class="language-console" data-lang="console">$ cd /var/www/htdocs/
806
- $ git clone --bare /path/to/git_project gitproject.git
807
- $ cd gitproject.git
808
- $ mv hooks/post-update.sample hooks/post-update
809
- $ chmod a+x hooks/post-update</code></pre>
810
- </div>
811
- </div>
812
- <div class="paragraph">
813
- <p>That’s all.
814
- The <code>post-update</code> hook that comes with Git by default runs the appropriate command (<code>git update-server-info</code>) to make HTTP fetching and cloning work properly.
815
- This command is run when you push to this repository (over SSH perhaps); then, other people can clone via something like:</p>
816
- </div>
817
- <div class="listingblock">
818
- <div class="content">
819
- <pre class="highlight"><code class="language-console" data-lang="console">$ git clone https://example.com/gitproject.git</code></pre>
820
- </div>
821
- </div>
822
- <div class="paragraph">
823
- <p>In this particular case, we’re using the <code>/var/www/htdocs</code> path that is common for Apache setups, but you can use any static web server — just put the bare repository in its path.
824
- The Git data is served as basic static files (see the <a href="ch00/ch10-git-internals.html">Git Internals</a> chapter for details about exactly how it’s served).</p>
825
- </div>
826
- <div class="paragraph">
827
- <p>Generally you would either choose to run a read/write Smart HTTP server or simply have the files accessible as read-only in the Dumb manner.
828
- It’s rare to run a mix of the two services.</p>
829
- </div>
830
- </div>
831
- <div class="sect4">
832
- <h4 id="_the_pros_2">The Pros</h4>
833
- <div class="paragraph">
834
- <p>We’ll concentrate on the pros of the Smart version of the HTTP protocol.</p>
835
- </div>
836
- <div class="paragraph">
837
- <p>The simplicity of having a single URL for all types of access and having the server prompt only when authentication is needed makes things very easy for the end user.
838
- Being able to authenticate with a username and password is also a big advantage over SSH, since users don’t have to generate SSH keys locally and upload their public key to the server before being able to interact with it.
839
- For less sophisticated users, or users on systems where SSH is less common, this is a major advantage in usability.
840
- It is also a very fast and efficient protocol, similar to the SSH one.</p>
841
- </div>
842
- <div class="paragraph">
843
- <p>You can also serve your repositories read-only over HTTPS, which means you can encrypt the content transfer; or you can go so far as to make the clients use specific signed SSL certificates.</p>
844
- </div>
845
- <div class="paragraph">
846
- <p>Another nice thing is that HTTP and HTTPS are such commonly used protocols that corporate firewalls are often set up to allow traffic through their ports.</p>
847
- </div>
848
- </div>
849
- <div class="sect4">
850
- <h4 id="_the_cons_2">The Cons</h4>
851
- <div class="paragraph">
852
- <p>Git over HTTPS can be a little more tricky to set up compared to SSH on some servers.
853
- Other than that, there is very little advantage that other protocols have over Smart HTTP for serving Git content.</p>
854
- </div>
855
- <div class="paragraph">
856
- <p>If you’re using HTTP for authenticated pushing, providing your credentials is sometimes more complicated than using keys over SSH.
857
- There are, however, several credential caching tools you can use, including Keychain access on macOS and Credential Manager on Windows, to make this pretty painless.
858
- Read <a href="ch00/_credential_caching.html">Credential Storage</a> to see how to set up secure HTTP password caching on your system.</p>
859
- </div>
860
- </div>
861
- </div>
862
- <div class="sect3">
863
- <h3 id="_the_ssh_protocol">The SSH Protocol</h3>
864
- <div class="paragraph">
865
- <p>
866
- A common transport protocol for Git when self-hosting is over SSH.
867
- This is because SSH access to servers is already set up in most places — and if it isn’t, it’s easy to do.
868
- SSH is also an authenticated network protocol and, because it’s ubiquitous, it’s generally easy to set up and use.</p>
869
- </div>
870
- <div class="paragraph">
871
- <p>To clone a Git repository over SSH, you can specify an <code>ssh://</code> URL like this:</p>
872
- </div>
873
- <div class="listingblock">
874
- <div class="content">
875
- <pre class="highlight"><code class="language-console" data-lang="console">$ git clone ssh://[user@]server/project.git</code></pre>
876
- </div>
877
- </div>
878
- <div class="paragraph">
879
- <p>Or you can use the shorter scp-like syntax for the SSH protocol:</p>
880
- </div>
881
- <div class="listingblock">
882
- <div class="content">
883
- <pre class="highlight"><code class="language-console" data-lang="console">$ git clone [user@]server:project.git</code></pre>
884
- </div>
885
- </div>
886
- <div class="paragraph">
887
- <p>In both cases above, if you don’t specify the optional username, Git assumes the user you’re currently logged in as.</p>
888
- </div>
889
- <div class="sect4">
890
- <h4 id="_the_pros_3">The Pros</h4>
891
- <div class="paragraph">
892
- <p>The pros of using SSH are many.
893
- First, SSH is relatively easy to set up — SSH daemons are commonplace, many network admins have experience with them, and many OS distributions are set up with them or have tools to manage them.
894
- Next, access over SSH is secure — all data transfer is encrypted and authenticated.
895
- Last, like the HTTPS, Git and Local protocols, SSH is efficient, making the data as compact as possible before transferring it.</p>
896
- </div>
897
- </div>
898
- <div class="sect4">
899
- <h4 id="_the_cons_3">The Cons</h4>
900
- <div class="paragraph">
901
- <p>The negative aspect of SSH is that it doesn’t support anonymous access to your Git repository.
902
- If you’re using SSH, people <em>must</em> have SSH access to your machine, even in a read-only capacity, which doesn’t make SSH conducive to open source projects for which people might simply want to clone your repository to examine it.
903
- If you’re using it only within your corporate network, SSH may be the only protocol you need to deal with.
904
- If you want to allow anonymous read-only access to your projects and also want to use SSH, you’ll have to set up SSH for you to push over but something else for others to fetch from.</p>
905
- </div>
906
- </div>
907
- </div>
908
- <div class="sect3">
909
- <h3 id="_the_git_protocol">The Git Protocol</h3>
910
- <div class="paragraph">
911
- <p>
912
- Finally, we have the Git protocol.
913
- This is a special daemon that comes packaged with Git; it listens on a dedicated port (9418) that provides a service similar to the SSH protocol, but with absolutely no authentication.
914
- In order for a repository to be served over the Git protocol, you must create a <code>git-daemon-export-ok</code> file — the daemon won’t serve a repository without that file in it — but, other than that, there is no security.
915
- Either the Git repository is available for everyone to clone, or it isn’t.
916
- This means that there is generally no pushing over this protocol.
917
- You can enable push access but, given the lack of authentication, anyone on the internet who finds your project’s URL could push to that project.
918
- Suffice it to say that this is rare.</p>
919
- </div>
920
- <div class="sect4">
921
- <h4 id="_the_pros_4">The Pros</h4>
922
- <div class="paragraph">
923
- <p>The Git protocol is often the fastest network transfer protocol available.
924
- If you’re serving a lot of traffic for a public project or serving a very large project that doesn’t require user authentication for read access, it’s likely that you’ll want to set up a Git daemon to serve your project.
925
- It uses the same data-transfer mechanism as the SSH protocol but without the encryption and authentication overhead.</p>
926
- </div>
927
- </div>
928
- <div class="sect4">
929
- <h4 id="_the_cons_4">The Cons</h4>
930
- <div class="paragraph">
931
- <p>The downside of the Git protocol is the lack of authentication.
932
- It’s generally undesirable for the Git protocol to be the only access to your project.
933
- Generally, you’ll pair it with SSH or HTTPS access for the few developers who have push (write) access and have everyone else use <code>git://</code> for read-only access.
934
- It’s also probably the most difficult protocol to set up.
935
- It must run its own daemon, which requires <code>xinetd</code> or <code>systemd</code> configuration or the like, which isn’t always a walk in the park.
936
- It also requires firewall access to port 9418, which isn’t a standard port that corporate firewalls always allow.
937
- Behind big corporate firewalls, this obscure port is commonly blocked.</p>
938
- </div>
939
- </div>
940
- </div>
941
- <div id="nav"><a href="Git-Branching-Summary.html">prev</a> | <a href="ch00/_bare_repo.html">next</a></div></div>
942
- </div>
943
-
944
- </div>
945
- </div>
946
- <footer>
947
- <div class="site-source">
948
- <a href="https://git-scm.com/site">About this site</a><br>
949
- Patches, suggestions, and comments are welcome.
950
- </div>
951
- <div class="sfc-member">
952
- Git is a member of <a href="https://git-scm.com/sfc">Software Freedom Conservancy</a>
953
- </div>
954
- </footer>
955
- <a href="Git-on-the-Server-The-Protocols.html#top" class="no-js scrollToTop" id="scrollToTop" data-label="Scroll to top">
956
- <img src="../../../images/icons/chevron-up@2x.png" width="20" height="20" alt="scroll-to-top"/>
957
- </a>
958
- <script src="../../../assets/application-38b0d42ff05ffea45841edebbd14b75b89585646153808e82907c2c5c11f324b.js"></script>
959
-
960
- </div>
961
-
962
- </body>
963
- </html>