First, a basic intro to terminology:
- Git: A developer tool for managing code versions.
- VCS: Version Control System, the general term for tools that manage versions of code.
- Git repo(sitory): A single code project that is managed by Git. Think of it like a folder in a Google Drive or Dropbox.
- CLI: Command Line Interface, a text-based computer interface for running commands.
git
is a CLI, but there are many graphical programs that do whatgit
does.
These are interactive courses you can take to learn developer skills.
- https://lab.github.com/githubtraining/introduction-to-github
- General Git tutorials: https://try.github.io/
Bitbucket is another Git hosting service. They offer free developer accounts with private and public Git repos.
- Intro to
git
CLI: https://www.atlassian.com/git/tutorials/setting-up-a-repository - Branch, merging, and fixing branch conflicts (uses command-line but is helpful for understanding merges)
- https://www.atlassian.com/git/tutorials/using-branches
- https://www.atlassian.com/git/tutorials/comparing-workflows (this is helpful to know ways developers use Git)
GitLab is another Git hosting service, with free developer accounts for public or private repos.
- Another Git workflow comparison, goes into the history of workflows: https://docs.gitlab.com/ee/topics/gitlab_flow.html
- Overview of merge (AKA pull) requests: https://docs.gitlab.com/ee/gitlab-basics/add-merge-request.html#how-to-create-a-merge-request
Forking and Pull Requests (AKA "PR"s) are the standard way to contribute to open source projects.
- Forking & PRs on GitHub (with screenshots): https://guides.github.com/activities/forking/
- Standard GitHub Fork & PR Workflow: https://gist.github.com/Chaser324/ce0505fbed06b947d962
- In-depth Forking Workflow: https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow
These are alternatives to using the git
CLI
- GitHub for Desktop: https://desktop.github.com/
- Sourcetree (Bitbucket): https://www.sourcetreeapp.com/
Contributing to open source projects can be overwhelming. Here's some resources designed to help first-time developers make their first open source contributions!
- Resources for first-time open source contributors: https://www.firsttimersonly.com/
- Blog on helping first-time users make PRs: https://yourfirstpr.github.io/
- List of GitHub projects and how to find good first issues on them: https://github.com/MunGell/awesome-for-beginners