To be honest, it took me some amount of time to understand and master those terms and expressions, not all but the most relevant and common ones. So I decided to write this article to help out those newbies and experienced developers who still struggling with those terms and expressions when they hear and read them out there.
Git and GitHub, is there any comparison? don’t be confused my fellow developer friends, Git is the version control system(VCS), a tool to manage your source code history. While GitHub is a hosting service for Git repositories(if the word “repository” sounds unfamiliar to you don’t worry we gonna cover that very soon). It provides a web-based graphical interface and desktop as well as mobile integration.
Let’s now dive into our article title, there are numerous terms and concepts related to Git and GitHub but I’m just going to list a few of them that I find illegal to not master as a developer.
First things first, let’s talk about the repository. Think of it like your own personal time capsule of code. It’s where all your files and directories are stored and tracked by Git, including all the different versions of those files. It’s your project or codebase in a nutshell.
But what if multiple people want to work on the same codebase at the same time? Enter the branch. It’s like a separate version of the code in the repository that allows multiple people to work on different parts of the code without interfering with each other. It’s like having multiple versions of the same book, each with its own unique story.
And what about saving those changes made to the code? That’s where commits come in. Think of them like saving points in a video game. Each commit records the changes made to the files in the repository and has a unique identifier (SHA-1) and a message that describes the changes. It’s like a history book of your code’s evolution.
But what if you want to propose changes to a repository that belongs to someone else? That’s where pull requests come in. They allow other people to review and discuss the changes before they are merged into the main branch. It’s like a code suggestion box.
Speaking of merging, it’s the process of bringing changes from one branch into another. It’s like combining different stories in a book to create a new, improved version.
What if you want to make changes to a repository that belongs to someone else without affecting the original? That’s where forks come in. It’s like a copy of the code that you can modify without impacting the original.
At least once in your developer journey, you downloaded repositories from others to store on your local machine, actually, the term of this process is called Clone, downloading or copying a repository from a remote server to the local machine. Cloning a repository allows you to access the repository and its entire history locally.
Gists are a way to share code snippets and paste them with others. They are simple text files that are stored on GiHub’s servers and are given a unique URL. Every gist is a Git repository, which means that it can be forked and cloned.
As its name defines, Gitignore is a file that is used to tell Git which files or directories to ignore when committing changes to a repository. It’s usually used to avoid committing transient files from your working directory that are not useful to other collaborators.
Then there are issues, a way for people to report bugs, request features, or ask questions about a repository. They’re like a customer service hotline for your code.
Merge conflicts occur when two or more branches have made different changes to the same file and Git is unable to merge them automatically.
Pull Request Review
Pull request review is a process in which changes proposed in a pull request are discussed and reviewed by team members or collaborators before being merged into the main branch or a repository.
GitHub API(Application Programming Interface) allows you to interact with GitHub programmatically.
And let’s not forget about GitHub Pages, a service that allows you to host a static website directly from a repository on GitHub, optionally runs the files through a build process, and publishes a website. It is designed to host your personal, organization, or project pages straight from a GitHub repository.
Git remote is a way to connect to a remote repository, such as one hosted on Github. It allows you to push, pull, and fetch changes between your local repository and the remote repository.
GitHub Actions allow you to automate software development workflows, like building, testing, and deploying code as well as integrating with external services. It’s like having a personal assistant for your code.
GitHub Actions Secrets
GitHub Actions secrets are encrypted environment variables that you can use to securely store and manage sensitive information like tokens, API keys, passwords, or other credentials.
GitHub Marketplace is a platform for discovering, buying, and installing tools and services that integrate with GitHub.
GitHub labels allow you to organize and categorize issues and pull requests with tags or labels in the GitHub repository. Labels can be used to indicate the status of an issue or pull request, such as “in progress” or “needs review”, or to indicate the type of issue, such as “bug” or “enhancement”.
GitHub releases allow you to package and distribute software releases and attach files and binaries to the release to your users.
GitHub projects allow you to organize and prioritize work by creating boards of issues and pull requests. Think of it like a code to-do list.
GitHub organization is a collection of people or entities that have been granted access to a shared repository of code. It allows you to manage multiple repositories, users, and teams under one account.
Git stash is a way to temporarily save changes that you have made but are not committed, so you can switch branches or perform other actions without losing your changes. It’s like a code time-out.
A Git submodule is a way to include a repository within another repository. It allows you to reference and work with code from another repository as if it were a subdirectory of the current repository.
Git hooks are scripts that are run automatically at certain points in the git workflow, such as before or after a commit. They can be used to automate tasks or enforce certain policies.
Git bisect is a way to locate the commit that introduced a bug in the code. It works by binary searching through the commits in the repository to find the commit that introduced the bug. It’s like a code detective.
Git blame is a way to see who made the last modification to each line of a file. It allows you to see who is responsible for a certain code and when it was last modified. It’s also known as a code fingerprint.
Git grep is like a code search engine, it’s a way to search for a specific string of text in the codebase. It allows you to quickly locate and find specific lines of code or files.
And to close this long list we have Git LFS(Large File Storage), a way to handle large files, such as videos, images, and audio files, in git repositories.
In short, Git and GitHub are like a code treasure trove, filled with all the tools you need to keep your code organized, efficient and safe. So, whether you’re a seasoned coder or just starting out, don’t be afraid to dive into the world of Git and GitHub. It’s a wild and wonderful journey, filled with branches, commits, pull requests, and more. Happy coding!