https://github.com/microsoftcloudessentials-learninghub/github-overview
GitHub Overview. For official guidance, support, or more detailed information, please refer to Microsoft's official documentation or contact Microsoft directly.
https://github.com/microsoftcloudessentials-learninghub/github-overview
demos github github-overview pricing
Last synced: 8 months ago
JSON representation
GitHub Overview. For official guidance, support, or more detailed information, please refer to Microsoft's official documentation or contact Microsoft directly.
- Host: GitHub
- URL: https://github.com/microsoftcloudessentials-learninghub/github-overview
- Owner: MicrosoftCloudEssentials-LearningHub
- License: mit
- Created: 2025-08-29T17:05:07.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-10-07T21:43:14.000Z (8 months ago)
- Last Synced: 2025-10-07T23:34:18.809Z (8 months ago)
- Topics: demos, github, github-overview, pricing
- Homepage:
- Size: 50.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GitHub - Overview
Costa Rica
[](https://github.com/) [brown9804](https://github.com/brown9804)
Last updated: 2025-08-04
----------------------
> GitHub is a web-based platform that provides hosting for software development and version control using Git. It offers a comprehensive suite of tools for collaboration, code management, and software delivery.
> [!TIP]
> For current Azure DevOps users, Microsoft suggest `moving your repositories over to GitHub so you can make the most of the latest agentic AI features`. You can still `keep using Azure Boards, Pipelines, and other tools like Test Plans thanks to our integrations.` Also, `Azure DevOps basic usage rights now come with GitHub Enterprise`, and Microsoft `working on making the migration process and integrations between GitHub and Azure DevOps even smoother.`
List of References (Click to expand)
- [GitHub Docs](https://docs.github.com): Comprehensive documentation for all GitHub features and workflows.
- [GitHub Actions](https://docs.github.com/en/actions): Learn how to automate workflows with GitHub Actions.
- [GitHub Pages](https://pages.github.com): Official guide to hosting static websites with GitHub Pages.
- [Git Reference](https://git-scm.com/docs): Official documentation for Git commands and workflows.
- [GitHub CLI](https://cli.github.com): Command-line interface for GitHub.
- [Pro Git Book](https://git-scm.com/book/en/v2): Free book on Git and version control.
- [GitHub Security Features](https://docs.github.com/en/code-security): Overview of GitHub's security tools.
- [Dependabot](https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically): Automate dependency updates.
- [CodeQL](https://codeql.github.com): Learn about GitHub's code scanning technology.
- [GitHub Discussions](https://github.com/github/feedback/discussions): Community forum for GitHub users.
- [GitHub Support](https://support.github.com): Contact GitHub support for help.
Table of content (Click to expand)
- [Overview](#overview)
- [Development Workflow](#development-workflow)
- [Issues](#issues)
- [Key Features](#key-features)
- [Examples](#examples)
- [Projects](#projects)
- [Key Features](#key-features)
- [Examples](#examples)
- [GitHub Pages](#github-pages)
- [Key Features](#key-features)
- [Setup Process](#setup-process)
- [Examples](#examples)
- [Security Tools](#security-tools)
- [Key Features](#key-features)
- [Examples](#examples)
- [Codespaces](#codespaces)
- [Key Features](#key-features)
- [Examples](#examples)
- [Areas](#areas)
## Overview
| Concept | Definition |
|---------|------------|
| Git | A distributed version control system that tracks changes to files over time |
| Repository (Repo) | A project's folder containing all files and their revision history |
| Branch | A parallel version of the repository for isolated development work |
| Commit | A snapshot of changes with a unique ID and descriptive message |
| Pull Request (PR) | A proposal to merge changes from one branch into another |
| Merge | The process of integrating changes from one branch into another |
## Development Workflow
1. Create or Clone a Repository
- Initialize a new repository: `git init my-project`
- Clone an existing repository: `git clone https://github.com/username/repo.git`
- Public repos visible to everyone, private repos limited to collaborators
2. Branch Development
- Create and switch to a new branch: `git checkout -b feature-branch`
- List all branches: `git branch -a`
- Work in isolation without affecting the main codebase
3. Commit Changes
- Check status of changed files: `git status`
- Stage all changes: `git add .`
- Stage specific file: `git add `
- Commit staged changes: `git commit -m ""`
- Build a detailed history of project modifications
4. Open Pull Request
- Push branch to remote repository: `git push origin `
- Use GitHub UI: Click `Compare & pull request`
- Describe changes, their purpose, and impact
5. Code Review and Discussion
- Review changes line by line in GitHub UI
- Add comments on specific lines
- Request changes or approve the pull request
- Ensure code quality and catch issues early
6. Automated Testing (CI)
- GitHub Actions run automated tests when PR is created
- Example workflow file (.github/workflows/ci.yml):
```yaml
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm test
```
- Check test results in `Actions` tab on GitHub
7. Merge Approved Changes
- GitHub UI: Click `Merge pull request`
- Or command line:
```bash
git checkout main
git pull
git merge feature-branch
git push
```
- Features or fixes become part of the official project
8. Automated Deployment (CD)
- Deploy updated applications to production environments
- Example deployment workflow:
```yaml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm run deploy
```
- Release new versions to users automatically
## Issues
> Issues are GitHub's built-in tracking system for bugs, feature requests, and tasks. They provide a centralized location to discuss ideas, enhancements, and problems related to your project.
Expand for more details
### Key Features
- **Issue Templates**: Create standardized formats for bug reports, feature requests, etc.
- **Labels**: Categorize issues by type, priority, status (e.g., "bug", "enhancement", "high-priority")
- **Milestones**: Group issues into project phases or version releases
- **Assignees**: Delegate responsibility to specific team members
- **Mentions**: Tag team members using @username to request input
- **Task Lists**: Create checklists within issues using `- [ ]` syntax
### Examples
**Creating an issue via GitHub CLI:**
```bash
gh issue create --title "Login button doesn't work" --body "When clicking the login button, nothing happens."
```
**Example issue template:**
```yaml
name: Bug Report
description: File a bug report
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
```
**Linking an issue to a pull request:**
```
This PR fixes #123 and addresses #456
```
## Projects
> Projects are flexible Kanban-style boards for organizing work and tracking progress across GitHub issues and pull requests.
Expand for more details
### Key Features
- **Boards**: Customizable Kanban-style boards with columns (e.g., To Do, In Progress, Done)
- **Cards**: Issues, pull requests, or notes that move between columns
- **Automation**: Automatically move cards based on events like PR creation
- **Views**: Table, board, or roadmap views for different perspectives
- **Custom Fields**: Add metadata like priority, effort, or custom categories
- **Filters**: Focus on specific aspects of the project by assignee, label, etc.
### Examples
**Basic project board structure:**
- To Do
- In Progress
- Review
- Done
**Automation rules example:**
- When issues are opened → Add to "To Do" column
- When pull requests are opened → Move card to "In Progress" column
- When pull requests are merged → Move card to "Done" column
**GitHub CLI commands:**
```bash
# Create a new project
gh project create "Q3 Feature Roadmap" --org "your-organization"
# Add an issue to a project
gh project item-add --issue
```
## GitHub Pages
> GitHub Pages is a free hosting service for static websites directly from GitHub repositories, perfect for project documentation, blogs, portfolios, or simple web applications.
Expand for more details
### Key Features
- **Free Hosting**: No cost for public repositories
- **Custom Domains**: Connect your own domain name
- **HTTPS**: Automatic SSL certificate provisioning
- **Jekyll Integration**: Built-in support for Jekyll static site generator
- **Automatic Builds**: Sites rebuilt automatically when you push changes
### Setup Process
1. Create repository with content
2. Go to repository Settings → Pages
3. Select source branch/folder
4. (Optional) Configure custom domain
5. Site is published at username.github.io/repository
### Examples
**Simple index.html file:**
```html
My GitHub Pages Site
Hello World!
This site is hosted with GitHub Pages.
```
**Jekyll configuration (_config.yml):**
```yaml
theme: jekyll-theme-minimal
title: My Project Documentation
description: Comprehensive guides for using my awesome project
```
**Custom 404 page (404.html):**
```html
Page Not Found
404 - Page Not Found
The page you were looking for doesn't exist.
Go back home
```
## Security Tools
> GitHub provides a comprehensive suite of security tools to identify and fix vulnerabilities in your code and dependencies.
Expand for more details
### Key Features
- **Dependabot**: Automatically detects vulnerable dependencies and creates PRs to update them
- **Code Scanning**: Uses CodeQL to identify potential security issues in your code
- **Secret Scanning**: Prevents accidental credential exposure in your repositories
- **Security Advisories**: Private workspace for vulnerability reporting and fixes
### Examples
**Dependabot configuration (dependabot.yml):**
```yaml
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
security-updates-only: true
```
**Code scanning workflow (.github/workflows/codeql.yml):**
```yaml
name: "CodeQL"
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: github/codeql-action/init@v2
with:
languages: javascript, python
- uses: github/codeql-action/analyze@v2
```
**Security policy file (SECURITY.md):**
```markdown
# Security Policy
## Reporting a Vulnerability
Please report security vulnerabilities to security@example.com.
We will acknowledge receipt of your vulnerability report within 24 hours and send a more detailed response within 48 hours indicating next steps.
```
## Codespaces
> Codespaces provides cloud-based development environments that are fully configured and ready to code, eliminating environment setup time and `works on my machine` problems.
Expand for more details
### Key Features
- **Pre-configured Environments**: Start coding immediately without setup
- **Customization**: Define dev container configuration in repository
- **Extension Support**: Use VS Code extensions in the cloud
- **Port Forwarding**: Test web apps with public/private URL options
- **Persistent Storage**: Keep your work between sessions
- **Collaboration**: Share running environments with team members
### Examples
**Dev container configuration (.devcontainer/devcontainer.json):**
```json
{
"name": "Node.js & MongoDB",
"dockerComposeFile": "docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspace",
"extensions": [
"dbaeumer.vscode-eslint",
"mongodb.mongodb-vscode"
],
"forwardPorts": [3000, 27017],
"postCreateCommand": "npm install",
"settings": {
"terminal.integrated.defaultProfile.linux": "bash"
}
}
```
**Docker Compose file (.devcontainer/docker-compose.yml):**
```yaml
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- ..:/workspace:cached
command: sleep infinity
network_mode: service:db
db:
image: mongo:latest
restart: unless-stopped
volumes:
- mongodb-data:/data/db
volumes:
mongodb-data:
```
**GitHub CLI commands:**
```bash
# Create new codespace
gh codespace create
# Open an existing codespace in VS Code
gh codespace code
# Stop a codespace
gh codespace stop
```
## Areas
| **Feature/Area** | **Description** | **Purpose** |
|-----------------------------------|-----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|
| **GitHub Enterprise Cloud** | A cloud-hosted version of GitHub for businesses, offering advanced collaboration and security tools. | Provides scalability, security, and compliance for organizations using GitHub in the cloud. |
| **GitHub Enterprise Server** | A self-hosted version of GitHub for businesses, deployed on-premises or in a private cloud. | Offers full control over GitHub infrastructure for organizations with strict compliance needs. |
| **GitHub Advanced Security** | Includes tools like Code Scanning and Secret Scanning to identify vulnerabilities in code. | Helps secure codebases by detecting vulnerabilities and exposed secrets. |
| **GitHub Copilot for Business** | AI-powered code completion tool tailored for teams and organizations. | Boosts developer productivity by suggesting code snippets and automating repetitive tasks. |
| **GitHub Copilot for Enterprise** | AI-powered code completion tool designed for large-scale enterprise use. | Provides AI-driven coding assistance with enterprise-grade security and scalability. |
| **GitHub Actions** | Automation platform for CI/CD workflows, enabling testing, building, and deployment. | Streamlines development workflows by automating repetitive tasks.|
| **GitHub Code Quality** | A forthcoming feature focused on improving code quality through automated analysis. | Aims to provide insights and recommendations to improve code maintainability and readability. |
Refresh Date: 2025-10-07