Version Control and Git

Developed with
Atlassian
play-arrow
Version Control and Git
Overview
Transcript
DifficultyBeginner
Duration2h 8m
Students96
Ratings
3.6/5
star star star star-half star-border

Description

Take this beginner level course on 'Atlassian BitBucket' to delve into the core principles and applied benefits for your software projects. This course made up of 8 lectures and 14 demos, will expertly teach and explain how to perform Git related tasks along with implementing and connecting BitBucket to third parties while always being aware of the various security options available.

This course would appeal to a range of job roles, including, Software Developers, Build and Release Engineers and DevOps Practitioners. All of the skills that you will gain from doing this Course will yield a tangible dividend for the projects with your enterprise; allowing you to use, control and manage BitBucket to manage and maintain your software products.

Learning Objectives 

  • Understand the basic principles of version control as implemented using the Git protocol and
  • Learn how to effectively use BitBucket to manage and maintain your software projects
  • Assess the benefits of using BitBucket to manage and secure your software engineering assets
  • Recognize and explain how to perform all basic Git related tasks such as creating and cloning a repository, branching, and merging.
  • Study to implement and connect BitBucket with other 3rd party systems 
  • Be aware of the different security options available to secure your BitBucket setup
  • Be able to use, control, and manage BitBucket through either using the web-based administration console and/or by using a git client.

Intended Audience

  • Software Developers 
  • Software Build and Release Engineers
  • DevOps Practitioners

Prerequisites

To be able to get the most out of this course we recommend having a basic understanding of:

  • Software development and the software development life cycle
  • Software development tools
  • Version control and associated workflows

Related Training Content

After completing this course we recommend taking the 'Introduction to Continuous Integration' Course

To discover more content like this, you will find all of our training in the Cloud Academy Content Training Library.

About the Author

Students7756
Labs21
Courses58
Learning paths12

Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.

Jeremy holds professional certifications for both the AWS and GCP cloud platforms.
 

Covered Topics

Welcome back. In this lecture, we'll provide a brief overview of version control and its importance within software engineering projects to manage and maintain coding assets. Although there are many different software products and protocols available to implement version control, this course focuses on using Atlassian Bitbucket and its capabilities of acting as a distributed version control system through the use of the Git protocol, and with this in mind, we'll begin our review of version control and how it is performed using Git. Okay, let's begin. A version control system is used to manage source code and the changes that occur within source code over the course of time. Version control software maintains a history of change and modification for every tracked file in a specialized database. 

A version control system is a fundamental component of a functioning DevOps build pipeline. In fact, it is the first service that you should have in place. Without a modern version control system in place, software development in enterprise teams will be problematic, to say the very least. To ensure that everybody within the development team can code independently and in a manner where each and everyone's code is protected and mergeable, then, a version control system has to be used, and, as we will see in the coming slides, a version control system provides features to manage conflicts on the same file, that is, to be able to detect and merge coding changes that have occurred in the same file by different team members. This is a key point regarding version control systems, that anyone in the team can edit and change the same file at the same time, and then, later on, leverage the version control system to manage and merge those changes. A version control system is a must-have for any serious software development workshop. 

Git and Git-based tools are without doubt the most popular for version control, as per market share reports. The fact that Git by its very nature is a distributed version control system promotes collaboration amongst distributed development teams. The benefits of using a version control system are numerous. Let's cover off a few of them. Productivity and collaboration. Different developers can work on the same file at the same time, later merging their changes within the version control system. This ensures that no one file becomes a bottleneck in the overall software development project. Versioning. Every file that has been checked into the version control system has a complete, long-term history of change, regardless of which developer made the change. Versioning tracks not just the code changes, but includes creation and deletion of files and tracks metadata about the change, such as the date when the change was committed back into the version control system. Auditing. Code changes can be tracked and traced back to individuals to understand who made what and when. Additionally, changes within the version control system can be cross-referenced and connected into other project management tools and-or issue tracking applications. Differencing. Different versions of the same source code file can be examined to determine and observe what differences exist. Branching and merging allows you to maintain independent streams of development effort for all files within a given repository. 

This is useful for when different developers build new features independently that touch multiple files. And finally, backups. By virtue of using a distributed version control system such as Git, you have the same source code distributed amongst many team members, which, in a way, provides you with a method to recover all source code should either the central repository become broken and-or any individual local copies of the same repository. We've now covered off the basics of version control and how Git provides many important features to manage and maintain your coding assets. In the next lecture, we'll provide insights to all common Git commands, ranging from initializing and cloning a Git repository, branching and merging, through to logging and reviewing history. If you're already familiar with Git and the associated Git commands, feel free to skip ahead to the Bitbucket-specific lectures ahead. Okay, the version control introduction has now been completed. Go ahead and close this lecture, and we will see you shortly in the next one, where we deep dive into Git itself.