Exploring Git, GitHub and GitHub Desktop

Introduction

This is Pooja from Alliance department. This blog summaries basics of Git, GitHub, and GitHub Desktop app-- how to set them up and use them to track your code changes.

What are Git, GitHub and GitHub Desktop

Git is a distributed version control system that allows multiple developers to collaborate on a project. It tracks changes to files over time and allows users to easily manage different versions of their code. Git enables developers to work on their own local copies of a project and merge their changes with others seamlessly.
GitHub is a web-based hosting service built around Git. It provides a platform for developers to store their Git repositories in the cloud and collaborate with others. GitHub offers additional features like issue tracking, pull requests, and project management tools, making it popular among developers and open-source communities for sharing and collaborating on code.
GitHub Desktop is a graphical user interface (GUI) application provided by GitHub. It simplifies the use of Git and GitHub by providing an intuitive interface for common Git operations. With GitHub Desktop, users can easily clone repositories, create branches, commit changes, and synchronize their local repositories with GitHub. It abstracts away some of the command-line complexity of Git, making it more accessible to beginners or those who prefer a visual interface.

Setting up GitHub Desktop

Here are the steps to set up GitHub Desktop:
1. Download GitHub Desktop: You can download GitHub Desktop from the official GitHub website at desktop.github.com. Choose the appropriate version for your operating system (Windows or macOS) and download the installer.
2. Install GitHub Desktop: Once you have downloaded the installer, run it to install GitHub Desktop on your computer. Follow the instructions provided by the installer to complete the installation process.
3. Log in to GitHub: After installing GitHub Desktop, open the application and log in to your GitHub account. If you don't have an account, you can create one for free on the GitHub website.
4. Clone a repository: To clone a repository from GitHub, click on the "Clone a repository" button in the GitHub Desktop interface. You can choose to clone a repository from your own account or from someone else's account.
5. Set up Git: GitHub Desktop requires Git to be installed on your computer. If Git is not already installed, GitHub Desktop will prompt you to install it. Follow the instructions provided by GitHub Desktop to install Git.
6. Configure settings: GitHub Desktop provides a range of configuration options that you can customize to suit your needs.
7. Start using GitHub Desktop: Once you have set up GitHub Desktop, you can start using it to manage your Git repositories. You can make commits, create branches, merge changes, and perform other Git-related tasks from within the GitHub Desktop interface .

Basic Git Workflow

The basic workflow of GitHub(Desktop) can be summarized in the following steps:
1. Create a repository: The first step in using GitHub is to create a repository.
2. Clone the repository: Once the repository is created, you can clone it to your local computer using Git or GitHub Desktop. Cloning creates a local copy of the repository on your computer, allowing you to work on the code and make changes.
3. Make changes: After you have cloned the repository, you can make changes to the code.
4. Push changes: After committing the changes, you need to push them to the repository on GitHub. Pushing updates the remote repository with your local changes, making them available to other collaborators.
5. Create pull requests: If you are collaborating with others, you may want to create a pull request to merge your changes with the main branch of the repository. Pull requests allow collaborators to review and discuss changes before merging them.
6. Merge changes: Once the changes have been reviewed and approved, they can be merged with the main branch of the repository.

Branching

Branching in GitHub involves creating separate lines of development within a repository, enabling work on new features, bug fixes, or experiments without affecting the main branch. Creating a branch is essentially making a copy of the repository at a specific point, allowing independent changes within that branch.

Day 3 of Game Dev: The basics of branching using Git! | by Ethan Martin | Dev Genius

Branching facilitates parallel development, version control, and a structured workflow, enhancing team collaboration and maintaining a stable main branch. It enables developers to work on multiple tasks concurrently while keeping the codebase organized and manageable.

pull requests

A pull request in GitHub enables developers to propose changes to a repository's codebase, contributing to the project by suggesting modifications, additions, or bug fixes. It involves creating a personal copy of the repository (fork), making changes in a new branch, committing and pushing those changes, and initiating a pull request for review.

The pull request serves as a platform for collaboration and discussion, where other contributors or maintainers can review, provide feedback, and discuss modifications. Once approved, the changes can be merged into the main branch. Pull requests facilitate code review, discussion, and the seamless integration of contributions, ensuring thorough review and alignment with project standards.

Conclusion

In conclusion, GitHub is a powerful platform that offers developers a wide range of features and tools for efficient and collaborative software development. Throughout this blog, we have explored the key concepts of GitHub, including repositories, version control, branching, and pull requests. We have seen how GitHub fosters teamwork, enables seamless collaboration, and enhances the overall development workflow.

Whether you are a solo developer or part of a large team, GitHub empowers you to collaborate, manage projects effectively, and contribute to the vibrant open-source community. So, dive into GitHub, explore its features, and unlock the full potential of collaborative software development. Happy coding!