Certified Jenkins Engineer

Introduction and Basics

Basics of SCM

Source Code Management (SCM), also known as version control, is the backbone of collaborative software development. Without an SCM, teams face chaotic workflows, untraceable edits, and endless merge conflicts.

The image illustrates the need for Source Code Management Systems (SCMs), showing multiple developers editing a document, with SCMs acting as a central library to track changes over time.

Why Use an SCM?

An SCM system stores every change to your codebase in a central repository, allowing multiple developers to work in parallel. Key benefits include:

FeatureBenefit
Real-time CollaborationDevelopers push and pull changes simultaneously
Code ReviewComment on pull requests before merging
Conflict ResolutionDetect and resolve edit conflicts efficiently
Secure SharingGrant controlled access to internal and external contributors
Full Change HistoryAudit decisions and review past code versions
Rollback CapabilityRevert to stable versions when issues arise

The image is an infographic titled "Source Code Management Systems (SCMs)" highlighting six features: Seamless Collaboration, Code Review, Conflict Resolution, Effortless Sharing, Unveiling the Past, and Rollback Ready.

Note

Consistent, descriptive commit messages make it easier to track your project’s evolution over time.
Example: git commit -m "Fix authentication bug in login flow"

Most modern SCMs are built on Git, a distributed version control system. Below is a comparison of common cloud-based and self-hosted solutions:

PlatformTypeHosting ModelURL
GitHubGitCloudhttps://github.com
GitLabGitCloud/Self-hostedhttps://gitlab.com
BitbucketGit, MercurialCloudhttps://bitbucket.org
GiteaGitSelf-hostedhttps://gitea.io
GogsGitSelf-hostedhttps://gogs.io

Getting Started

# Clone a repository
git clone https://github.com/example/repo.git 

# Create and switch to a new branch
git checkout -b feature/new-endpoint 

# Add files to staging area
git add . 

# Commit changes with a message
git commit -m "Add new endpoint for user data" 

# Push branch to remote
git push origin feature/new-endpoint

Watch Video

Watch video content

Previous
Introduction to Jenkins