Github:
Github is a service hosting on the web all the projects are stored.
Before starting github we would like to know what is version control system and what is Git?
What is version Control System?
It is system that keeps a track of different version of files and we can use the specific version of file whenever needed.
It is a software tool that helps into recording the changes made to the files by keep the track of modifications done to the code. There is one repository and each user has their own working copy. Whatever the changes are committed to the repositories, will be seen by others.
What is Git ?
- Git is a version control system for tracking changes in computer files. It is used for coordinating work among several people on a project and tracking progress over time.
- Git is the most commonly used for version control system.
- It is helpful to keep a track of all the files .
- It allows multiple users work together.
- Large projects can be handled efficiently.
- It is free open source software and can be installed in MAC OS, Windows or Linux.
Github:
Github is a service hosting on the web all the projects are stored.
Every project on github has its own repository and unique URL.
Git provides graphical interface to store the files and helps team members to coordinate on the project from anywhere.
Github provides several access control and collaboration feature like wikis and basic task management tools for every project
Features of Github:
- Easy Project management – Project managers and developers coordinate ,track and update their work so projects stay transparent and on schedule.
- Increase safety and packages – they can published privately, winthin a community or publicly and can be reuse.
- Effective Team management
- Increase code safety — To enhance code safety in your GitHub repositories
- Enable Dependabot: Dependabot alerts you when your repository uses a software dependency with a known vulnerability
- Security Policies: Add a security policy to your repository. This provides instructions for reporting security vulnerabilities in your project.
- GitHub Security Features: GitHub offers various security features to keep your code and secrets secure.
- Easy code hosting – We can use the Pages option where can host for static files.
- Collaborating using the Github flow – GitHub Flow is a lightweight, branch-based workflow that supports collaboration on projects. Create a Branch:, Make Changes, Commit and Push: Merge Your Changes
Repository: A repository on GitHub is a place where you can store your code, your files, and each file’s revision history.
Star : You can star repositories and topics to keep track of projects you find interesting and discover related content in your news feed. Starring makes it easy to find a repository or topic again later.
Github.com/stars
Watchers: Users on GitHub can watch repositories to receive notifications about project activity.
Forks: Forks are a great way to contribute to a repository. After forking a repository, you can send the original author a pull request.
Release: Releases in GitHub are used to manage and package software for end users. They provide a way to mark a specific point in the repository’s history as significant, typically corresponding to a version of the software that is stable or ready for production use.
Packages: GitHub Packages is a package hosting service provided by GitHub that allows you to host and manage your software packages directly within your GitHub repositories. It integrates seamlessly with GitHub’s ecosystem, making it easy to publish, manage, and install packages in your projects
GitHub Packages supports a variety of package formats, including:
- Container images (Docker)
- Node.js packages (npm)
- Java packages (Maven)
- Ruby packages (RubyGems)
- .NET packages (NuGet)
- Python packages (PyPI)
GitHub Actions
GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows to automate the build, test, and deployment pipeline. We can create workflows that run tests whenever push a change to the repository, or that deploy merged pull requests to production.
GitHub Actions goes beyond just DevOps and lets you run workflows when other events happen in repository. For example, In a workflow , automatically add the appropriate labels whenever someone creates a new issue in your repository.
You can configure a GitHub Actions workflow to be triggered when an event occurs in your repository, such as a pull request being opened or an issue being created. Your workflow contains one or more jobs which can run in sequential order or in parallel. Each job will run inside its own virtual machine runner, or inside a container, and has one or more steps that either run a script that you define or run an action, which is a reusable extension that can simplify your workflow.
GitHub provides Linux, Windows, and macOS virtual machines to run your workflows, or you can host your own self-hosted runners in your own data center or cloud infrastructure.
Workflows
A workflow is a configurable automated process that will run one or more jobs. Workflows are defined by a YAML file checked in to your repository and will run when triggered by an event in your repository, or they can be triggered manually, or at a defined schedule.
Workflows are defined in the .github/workflows directory in a repository, and a repository can have multiple workflows, each of which can perform a different set of tasks. For example, you can have one workflow to build and test pull requests, another workflow to deploy your application every time a release is created, and still another workflow that adds a label every time someone opens a new issue.