Prev | Contents | Next

33 Appendix: Other References

“Your book stinks. What other references can I use?”

Here are more! I found these by searching the Internet for Git book recommendations. The only ones I’ve used are the man pages and Pro Git.

If you know of more, mail them to beej@beej.us.


  1. https://learn.microsoft.com/en-us/windows/wsl/↩︎

  2. https://beej.us/guide/bggit/↩︎

  3. https://github.com/↩︎

  4. https://gitlab.com↩︎

  5. https://docs.gitea.com/↩︎

  6. https://learn.microsoft.com/en-us/windows/wsl/↩︎

  7. https://www.vim.org/↩︎

  8. https://github.com/↩︎

  9. https://cli.github.com/↩︎

  10. https://github.com/cli/cli#installation↩︎

  11. https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent↩︎

  12. https://www.baeldung.com/linux/ssh-private-key-git-command↩︎

  13. https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens↩︎

  14. https://en.wikipedia.org/wiki/Hexadecimal↩︎

  15. https://git-scm.com/book/en/v2/Git-Tools-Submodules↩︎

  16. https://github.com/github/gitignore↩︎

  17. The --staged flag is more modern. Older versions of Git used git diff --cached.↩︎

  18. https://docs.github.com/en/enterprise-server@3.9/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-access-to-your-personal-repositories/inviting-collaborators-to-a-personal-repository↩︎

  19. https://en.wikipedia.org/wiki/Stack_(abstract_data_type)↩︎

  20. https://github.com/beejjorgensen/git-example-repo↩︎

  21. https://en.wikipedia.org/wiki/XZ_Utils_backdoor↩︎

  22. A diff shows the difference between two files.↩︎

  23. https://en.wikipedia.org/wiki/Social_Security_number#SSNs_used_in_advertising↩︎

  24. https://support.github.com/request?q=pull+request+removals↩︎

  25. Git cleans up “unreachable” commits after some time has elapsed, so they won’t be instantly destroyed. But they’re on borrowed time unless you create a new branch to hold them.↩︎

  26. You can leave off the --mixed since it’s the default.↩︎

  27. No guarantees. You shouldn’t rewrite commit history that is already public!! It makes a big mess!↩︎

  28. Perhaps using git reflog and git cherry-pick or git cherry-pick -n and potentially git add -p, all of which are covered in later chapters. Along with judicious use of rebase, old commits or parts of old commits can be applied while keeping the commit history clean.↩︎

  29. https://en.wikipedia.org/wiki/Battle_of_Mobile_Bay#“Damn_the_torpedoes”↩︎

  30. By default it’s 90 days. You can configure this with the gc.reflogExpire config option.↩︎

  31. Keeping in mind to never rewrite history on anything you’ve pushed, of course.↩︎

  32. Even if the changes were identical, the UUID would still be different because the hash takes all kinds of other metadata into account.↩︎

  33. https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work↩︎

  34. https://git-scm.com/docs/git-config#_variables↩︎

  35. https://git-scm.com/docs/git-config#_conditional_includes↩︎

  36. https://git-scm.com/docs/git-config#_deprecated_modes↩︎

  37. https://git-scm.com/docs/git-log#_pretty_formats↩︎

  38. https://superuser.com/questions/232373/how-to-tell-git-which-private-key-to-use↩︎

  39. Setting the PATH is outside the scope of this tutorial, but the short of it is if you can run the diff tool command on the command line (e.g. by running vimdiff), then it is in the PATH. If it says command not found or some such, then it is not in the PATH. Search the Intertubes for how to add something to the PATH in Bash. Or set the Git path config explicitly, as shown in the following paragraph.↩︎

  40. https://www.araxis.com/merge/index.en↩︎

  41. https://www.scootersoftware.com/↩︎

  42. https://sourcegear.com/diffmerge/↩︎

  43. https://kdiff3.sourceforge.net/↩︎

  44. https://apps.kde.org/kompare/↩︎

  45. https://meldmerge.org/↩︎

  46. https://www.perforce.com/products/helix-core-apps/merge-diff-tool-p4merge↩︎

  47. https://www.vim.org/↩︎

  48. https://winmerge.org/?lang=en↩︎

  49. https://www.araxis.com/merge/index.en↩︎

  50. https://www.scootersoftware.com/↩︎

  51. https://www.devart.com/codecompare/↩︎

  52. https://invent.kde.org/sdk/kdiff3↩︎

  53. https://meldmerge.org/↩︎

  54. https://www.perforce.com/products/helix-core-apps/merge-diff-tool-p4merge↩︎

  55. https://www.vim.org/↩︎

  56. https://winmerge.org/↩︎

  57. https://www.openvim.com/↩︎

  58. https://git-scm.com/book/en/v2↩︎

  59. https://git-scm.com/docs↩︎

  60. https://shafiul.github.io/gitbook/index.html↩︎

  61. https://learngitbranching.js.org/↩︎

  62. https://github.com/apps/github-learning-lab↩︎

  63. https://www.codecademy.com/learn/learn-git↩︎

  64. https://www.atlassian.com/git/tutorials↩︎

  65. https://gitimmersion.com/↩︎

  66. https://github.com/pluralsight/git-internals-pdf?tab=readme-ov-file↩︎

  67. http://sethrobertson.github.io/GitPostProduction/gpp.html↩︎

  68. https://www.manning.com/books/learn-git-in-a-month-of-lunches↩︎

  69. https://www.amazon.com/Introducing-GitHub-Non-Technical-Peter-Bell/dp/1491949740↩︎

  70. https://www.amazon.com/Git-Pocket-Guide-Working-Introduction/dp/1449325866↩︎

  71. https://www.amazon.com/Version-Control-Git-collaborative-development/dp/1449316387↩︎

  72. https://www.amazon.com/Git-Practice-Techniques-Mike-McQuaid/dp/1617291978↩︎

  73. https://www.amazon.com/Git-Teams-User-Centered-Efficient-Workflows/dp/1491911182↩︎

  74. https://pragprog.com/titles/tsgit/pragmatic-version-control-using-git/↩︎

  75. https://www.amazon.com/Mastering-Git-proficiency-productivity-collaboration/dp/1783553758↩︎


Prev | Contents | Next