Exploring GitHub
Tags: github, githubeducation, git, githunt
Published: 2022-03-19 05:57:26

## GitHub repositories

A **GitHub repository** contains the project's source code and commits history related to the project changes. You can work individually or in a team and provide restricted access to GitHub repositories. The GitHub repositories can be public or private.


### How to create GitHub repositories

The process to create a GitHub repository is simple. Firstly, we have to sign up for the GitHub Account. As we already learned, how to signup for a GitHub account. 
You will need to find a **"+"** sign at the top right of your GitHub account to get this started. The profile tab is next to it. Click the **"+,"**, and you will see a dropdown with the first option to create a **"New repository"**. Once clicked, you will be redirected to another page where you will have to set certain information regarding your project, such as providing a name of your repository, adding a description of the project, declaring if it is public or private.

![Exploring GitHub](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xtq3cskzr08fzbo9xpdq.png)

Enter any repository name and click on **“Create Repository”**. You can also give a description to your repository (optional).
![Exploring GitHub](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5uzkbhmlo5oqc9ghr3vn.png)
Enter the repository's name and click on **"Create Repository"**. Describe the repository (optional). Private repositories are only accessible to you, While public repositories are available on the internet and accessible to everyone.

![Exploring GitHub](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t0neom570rgaj3ziyrw7.png)

You can easily create the first repository; let's explore the repository features.

### GitHub Issues

**GitHub issues** is a tracking feature that integrates to the GitHub repository. You can use issues to be focused on upcoming tasks, fixing bugs, feedback, or tracking ideas related to your project.  

### What is forking 

Forking is a repository copy that allows you to experiment with the changes without affecting the original repository.

For example, John told Smith to make some changes to the project, so Smith needs to Fork John Repository before making any changes.

### GitHub Pull Request 

A **Pull Request** is a feature on GitHub which allows informing changes you have made to the repository throughout your branch. 
The Repository owner reviews your changes; the reviewer can also request changes if there is any merge conflict or bug; once a pull request is reviewed and approved by the repository owner and can be merged to the main branch.

> keep in mind that all-new repositories created on GitHub will be named "main" instead of "master" as part of the company's effort to remove unnecessary references to slavery and replace them with more inclusive terms

### GitHub project board

Project boards are integrated into the GitHub repository, which helps organize and prioritize project work. You can create a project board for specific feature work, roadmap, or even a release checklist. Project boards are used for issues and pull requests.


### GitHub wiki

**GitHub wiki** can share detailed information about our project; GitHub wiki can also be used for the project documentation. GitHub wiki can be used with public repositories, and in private repositories, we can use GitHub wiki using GitHub pro, GitHub Team, and GitHub enterprise pricing tier. GitHub wiki uses Markdown Language, a widely useable language for documentation and blogs.

#### What is Markdown language
John Gruber makes markdown, you can use markdown to write blogs, texts, books, and practically 100% of your writing work in a single format, and you can efficiently distribute it in Word, PDFs, EPUBs, HTML, and many other formats.

### GitHub webhooks

GitHub Webhook provides a notification to the external server like Discord Servers, and they are integrated into the repository can be found in the settings. Whenever an action is performed on the repository or **GitHub organization**, You can configure your GitHub webhook whenever you execute.

1. You push changes to the repository 
2. You Open a Pull request 
3. Push changes to the **GitHub Pages.**

## GitHub organization

GitHub's organizations are shared accounts where business and open-source projects can collaborate across the platform. The GitHub organization provides a manageable access level of members and administrative-level security.

### How to create a GitHub organization

You will need to find a "+" sign at the top right of your GitHub account to get this started. Your profile tab is right next to it. Click on that, and a dropdown will open with the fourth option to create a "New organization." Select the pricing team accordingly, and then you can easily create your GitHub organization.


![Exploring GitHub](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3gchb5kriidepsn83nj1.png)

## GitHub pages

GitHub Pages is a static site hosting service that hosts HTML, CSS, JavaScript-based websites. Also, ReactJS and Jekyll (ruby) can be easily hosted using GitHub Pages. GitHub pages run the files through a building process and publish a website, which can be accessed from the username.github.io domain, or you can also use your custom domain. 


## GitHub gist 

GitHub gist is the simplest way to share code snippets. All GitHub gists are git repositories, so they are automatically versioned, forkable, and usable from git. It is used to share or embed a sample code or technique with your team. 

### How to create GitHub Gist

You will need to find a "+" sign at the top right of your GitHub account to get this started. Your profile tab is right next to it. Click on that, and a dropdown will open with the third option to create "New gist."


![New Gist](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r7cabyhyc1pms3uaxld2.png)


## GitHub codespaces

GitHub Codespaces is a cloud-hosted VSCode based editor which can be accessed from a Web Browser that includes the editor, terminal, debugger, settings sync, and any extension, so you can easily collaborate on the project.


## GitHub Rest API

### What is API?

API Stands for Application Program interface, which developers use to access information on the cloud. It allows the different cross-platforms to communicate with each other—for example, Google Assistant.

### What is GitHub Rest API?

GitHub RestApi or (GitHub API) can interact with GitHub. With the help of GitHub API, we can create and manage repositories, pull requests, issues, and more. You can access the public repositories and information using GitHub API. However, if you need to access, create or manage resources on GitHub, you need to provide your GitHub access token.

### How to use GitHub Rest API

You can access the public information of the GitHub account by following the command. 

```API
curl https://api.github.com/users/adilshehzad786
```
> Replace @adilshehzad786 with your GitHub username

![API](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tsuqmjngz3ed9txto5hh.png)

## GitHub CLI 

GitHub CLI helps bring the pull requests, issues, and other GitHub concepts to the terminal.

You can get more information about the GitHub CLI related to installation and usage on the GitHub CLI Website.


## Summary

In this lesson, we have explored GitHub features and how they could benefit us. We have learned about GitHub repositories and how to create a repository on GitHub. You can Explore GitHub and its services from your GitHub account.

If you have any question, please feel free to connect with me on [LinkedIn](https://www.linkedin.com/in/adilshehzad7/).  

* [Signing Up For GitHub](https://dev.to/adilshehzad786/signing-up-for-github-11i0)
* [Back to Main](https://dev.to/adilshehzad786/all-about-git-github-beginner-to-advance-1061)