DevOps Tools Introduction #04: Source Code Management

DevOps Tools Introduction #04: Source Code Management

Storing work results and sharing them with colleagues is an essential part of open source and DevOps culture. Source code management (SCM) and version control ensure that all members of a team stay on top of changes to source code and related files. These tools are also crucial in coordinating parallel work on different features and the integration of the features for software releases. In addition to source code, SCM is often used to manage configuration files as well. Putting the configuration of cloud services under version control facilitates application deployment significantly.

The LPI DevOps Tools Engineer exam dedicates the entire objective 701.3 to SCM and places Git front and center.

Git is the most widely used version control system in the world today, serving as the backbone of modern software development, open source collaboration, and DevOps workflows. It enables developers and operations teams to track changes, collaborate efficiently, and manage complex projects with speed and reliability.

At its core, Git is a distributed version control system (DVCS). Unlike centralized systems, where a single server holds the main repository, Git allows every developer to maintain a full copy of the project history locally. This design provides several key advantages: faster performance, offline work capabilities, improved fault tolerance, and greater flexibility in branching and merging.

The story of Git begins in 2005, within the Linux kernel development community. At the time, the Linux kernel project relied on a proprietary version control system called BitKeeper. Although BitKeeper was free for open source use under certain conditions, licensing changes and community disagreements made it unsuitable for long-term reliance. Faced with this challenge, Linus Torvalds, the creator of Linux, decided to design a new system tailored specifically to the needs of large, distributed projects. His goals were ambitious: The new tool needed to be extremely fast, capable of handling thousands of concurrent contributors, and offer strong cryptographic integrity in order to be resistant to data corruption.

Most importantly, it had to support a fully distributed workflow without depending on a central authority.

Over time, Git evolved far beyond its original purpose. While initially created to manage the Linux kernel, it quickly gained adoption across the open source ecosystem and enterprise environments. Large platforms such as GitHub, GitLab, and Bitbucket further accelerated Git’s popularity by adding collaboration features like pull requests, issue tracking, code reviews, and integrated CI/CD pipelines.

The best way to learn Git is by using it. Head over to tryGit and jump into an interactive learning environment where you’ll complete real Git commands inside a browser-based terminal. Pay close attention to the file explorer and the guidance panel below the terminal — they reveal how each command affects the repository structure and workflow.

Git itself provides comprehensive documentation in the form of a free ebook. If English is not your native language, make sure to check the left menu of the book’s page for translations. In case you’re new to Git, you’ll certainly want to read the Getting Started and Git Basics chapters. You might consider continuing to work through the book or skip directly to those features that the exam objectives explicitly mention, such as tags, branches, merging and submodules.

Chapter seven of the Git book introduces you to a series of useful and advanced features of Git. Browse through all the pages of this chapter and also review the entire Appendix C, which summarizes the Git commands used in the book.

To wrap up this subject, spend some time to determine how Git integrates with your favorite development or administration tools. To get a feeling for how other projects use Git, find the repositories of a few free software projects you use and explore how these projects manage their development and releases.

Finally, LPI expects you to be aware of the differences between centralized and distributed SCM and to be aware of two other version control systems still in use: Apache Subversion and CVS.

Proper version control is the base for successful DevOps. Once source code and configuration files are put under version control, build tools can retrieve them to start automated builds, tests and deployment. We will learn more about this next week, when we’ll discuss continuous integration and continuous delivery.

<< Read the previous part of this series

Authors

  • Fabian Thorns

    Fabian Thorns is the Director of Product Development at Linux Professional Institute, LPI. He is M.Sc. Business Information Systems, a regular speaker at open source events and the author of numerous articles and books. Fabian has been part of the exam development team since 2010. Connect with him on LinkedIn, XING or via email (fthorns at www.lpi.org).

  • Uirá Ribeiro

    Uirá Ribeiro is a distinguished leader in the IT and Linux communities, recognized for his vast expertise and impactful contributions spanning over two decades. As the Chair of the Board at the Linux Professional Institute (LPI), Uirá has helped shaping the global landscape of Linux certification and education. His robust academic background in computer science, with a focus on distributed systems, parallel computing, and cloud computing, gives him a deep technical understanding of Linux and free and open source software (FOSS). As a professor, Uirá is dedicated to mentoring IT professionals, guiding them toward LPI certification through his widely respected books and courses. Beyond his academic and writing achievements, Uirá is an active contributor to the free software movement, frequently participating in conferences, workshops, and events organized by key organizations such as the Free Software Foundation and the Linux Foundation. He is also the CEO and founder of Linux Certification Edutech, where he has been teaching online Linux courses for 20 years, further cementing his legacy as an educator and advocate for open-source technologies.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *