DevOps Classroom notes 02/Sep/2025

Git Remote

  • Any machine can act as a git remote. Generally git remote will have a daemon which handles communication, user management. Git is commonly installed on all nodes.
  • Git Remote can be installed on servers (self-hosting.)
Tool Type Highlights Official Website
Plain Git over SSH Lightweight No UI, simple git init --bare setup, push/pull over SSH. Git SCM
Gitolite Lightweight Access control + SSH key management on top of bare repos. Gitolite
Gitea Web-based Lightweight, GitHub-like UI, issues, wiki, CI/CD integration. Gitea
Forgejo (Gitea fork) Web-based Community-driven fork of Gitea, long-term support. Forgejo
GitLab CE (Community Edition) Web-based / Enterprise Full DevOps: CI/CD, project mgmt, code review, pipelines. GitLab CE
Phabricator (archived) Web-based Code review, tasks, wiki. Archived but still usable. Phabricator (archived)
SourceHut Web-based Minimalist, email workflows, CI. Scriptable. SourceHut
GitHub Enterprise Server Enterprise On-prem GitHub with enterprise features. GitHub Enterprise
Bitbucket Data Center Enterprise Atlassian’s self-hosted Git solution, integrates with Jira. Bitbucket Data Center
  • Popular remotes of Git are cloud hosted or Git as a service.
Provider Type Highlights Official Website
GitHub Cloud SaaS Most popular; public/private repos, Actions (CI/CD), marketplace, huge community. GitHub
GitLab.com Cloud SaaS Full DevOps suite: repos, CI/CD, project mgmt, Kubernetes integration. GitLab
Bitbucket Cloud Cloud SaaS By Atlassian; integrates tightly with Jira/Trello. Bitbucket
SourceHut (Hosted) Cloud SaaS Minimalist; email workflows, CI, issue tracking. SourceHut
AWS CodeCommit Cloud (AWS) Fully managed private Git repos on AWS, integrates with CodePipeline & IAM. AWS CodeCommit
Azure Repos Cloud (Azure DevOps) Unlimited private repos, tight integration with Azure DevOps services. Azure Repos
Google Cloud Source Repositories Cloud (GCP) Private Git repos with Google Cloud integration. Cloud Source Repositories

Lets create our first git remote repo

Direction: First we will create a local repo then remote repo

  • We have created a local repo and created a commit
  • Lets use github: The largest and most popular git remote repo which gives unlimited public and private repos for free.
  • Github allows to communicate over
    • https
    • ssh
  • To add a connection between local and remote
git remote add <conn-name> <url>
  • Generally the default connection name used is origin
git remote add origin https://github.com/dummyrepos/first_from_local.git
git remote -v
git config --list
  • We have one commit in main branch locally, lets send those commits to remote (push)
git push <connection-name> <branch-name>

Preview

Direction: First we will create a remote repo then local

  • Create a remote repo
  • Clone refers to an operation where you have remote but no equivalent local repo on your system.
git clone <url>
# it creates a new folder 
  • Clone create a new folder with working tree and local repo. It also sets the upstream for default branch and default connection will be origin.

Set up ssh keys on github

  • If you dont have keys already execute ssh-keygen this generates two keys in ~/.ssh
    • id_ed25519: this is private key
    • id_ed25519.pub: this is public key
  • Now lets upload this public key to github (Watch video for screenshots)

Underlying concept

  • Every remote branch has a local representation generally branches will be created with names remotes/<conn-name>/<branch>
    Preview
  • When you are sending changes (pushing) to remote the actual remotes latest commit id of the branch should be matching your remote representation
  • To get the latest changes the command is
git pull <connection-name> <branch>
  • To avoid unneceassary merge commits
git pull <connection-name> <branch> --rebase
  • git pull => fetch + merge
  • Exercise:

    • setup ssh keys on github gitlab, bitbucket
    • Create a local repo and push it
      • github private repo
      • gitlab private repo
      • bitbucket repo
    • Create a remote repo and clone the changes locally
      • github
      • gitlab
      • bitbucket

Published
Categorized as Uncategorized Tagged

By continuous learner

devops & cloud enthusiastic learner

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Animated Social Media Icons by Acurax Responsive Web Designing Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube