############### Git ############### In 2025, I was asked to include something about `git `_ in this tutorial. It's simple. This web site has an excellent free on-line book on the subject: https://git-scm.com/book/ If you ever have any questions about git, just consult the book. That's it. Well, that's not it. I should say more, if only to justify my salary. .. toctree:: :maxdepth: 1 WhyGit.md Branching.md Repository.md HowGit.md Tags.md The above sections contain a small subset of the material presented in the Git book, but from a different perspective than the book's: - If your only experience in programming is using Python within a Jupyter notebook, it might not be clear why anyone would use a software versioning tool. I present my answer to that question. - I review commands and procedures that I think you're most likely to use in physics research. .. admonition:: A lot of assumptions :class: note In these sections, I make a lot of assumptions about what you may know about programming and software management. Let me know if my assumptions are correct. I'll fix next year's course with what the students actually know, as opposed to what I assume they know. .. admonition:: In case it's not obvious :class: tip I'm only going to discuss using git on the UNIX command line. There are Jupyter extensions that can work with git, but: - I think Jupyter notebooks are not a good candidate for management with git, for reasons I'll discuss later; - Adding `extensions to Jupyter `_ is well beyond the scope of this tutorial. .. figure:: https://imgs.xkcd.com/comics/git.png :align: center :width: 50 % https://xkcd.com/1597/ by Randall Munroe.