Git is a specific open-source version control system. GitHub is provided by GitHub, Inc. as a cloud-based code hosting platform for version control with Git and user collaboration. Both products are powerful tools, but only the basic features are required for contributing. Please note that different communities (online communities and/or GitHub organizations) may have different standards for acceptable contributions that cannot be fully explored in this post – you should review the community’s individual README or help files and ask questions before contributing to the individual Git project.
This post is about using some of the fundamental features of Git to manage and maintain repositories using your operating system (OS) console or a dedicated console, such as Git Bash. If you would rather use a web-based interface for basic Git functionality instead of a console, a simple alternative is GitHub. GitHub is also a more friendly way to gain experience with the basic functionality and workflow of Git. You can find information and discuss GitHub on the separate community post: https://community.lsst.org/t/resources-for-github.
If you’re wholly unfamiliar, the Wikipedia Git page provides a simple background and common use cases. The official Git Documentation site includes the Pro Git book – the most comprehensive source – and two helpful cheat sheets, a GitHub hosted Cheat Sheet and a more advanced Visual Git Cheat Sheet hosted by NDP Software.
Using Git requires either a console or an application, such as GitHub. The Git download site includes a bash console and a selection of GUIs for Windows, macOS and Linux/Unix.
Once you’ve downloaded and can run Git, it’s crucial to understand working with remote and local repositories (repos) to contribute to Git projects. I’d recommend starting with the Git Book chapter, Git Basics: Working with Remotes.
As you can guess, there are a million sites, blogs, articles, etc. for helping. I’ll also include a reply in the thread for other articles I’ve found helpful.
-
The official documentation is well written, so don’t be afraid to use it. A reference is available for targeted topics, and there are multiple ways to contact the development community.
-
There is an enormous amount of Q&A already available on Stack Overflow under the Git tag: Newest 'git' Questions - Stack Overflow
-
There is a previous post on Community for some Git tips and tricks.
-
@humnaawan provides a Git tutorial notebook and repo for beginners for Git and GitHub: GitHub - humnaawan/git-tutorial: Tutorial for Git and GitHub.
-
@drphilmarshall, one of the Rubin Observatory Deputy Directors for Operations, provides an in depth FAQ, video and top notch resources for beginners to Git and GitHub: