From 0fc68d39cf23955f443c75fa536922b45cf2e1dc Mon Sep 17 00:00:00 2001 From: Christian Kolset Date: Thu, 24 Apr 2025 23:28:53 -0600 Subject: Updated .tex files --- book/module2/version_control.tex | 42 +++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 22 deletions(-) (limited to 'book/module2/version_control.tex') diff --git a/book/module2/version_control.tex b/book/module2/version_control.tex index 3c5ac6a..1c327c6 100644 --- a/book/module2/version_control.tex +++ b/book/module2/version_control.tex @@ -17,8 +17,6 @@ In this section is divided up into two major sections. The first section project. The second section will cover how to use git with GitHub to \emph{collaborate} on projects. -\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center} - \subsection{Git}\label{git} Git is a version control program that tracks changes to files and @@ -51,25 +49,25 @@ committed: This leads us to the three main sections of a Git project: the working tree, the staging area, and the Git directory. -\includegraphics{https://git-scm.com/book/en/v2/images/areas.png} \#\#\# -Branching In git, branches allow for parallel workflow on a project. It -give contributors the ability to work different features at the same -time. Each branch represents an independent line of development, and -once a feature or fix is complete, it can be merged back into the main -branch. Here is a common branching structure used in many Git projects: -- Main Branch - The main branch (a.k.a. master branch) is the default -branch in a Git repository and contains the stable version of the code. -- Development Branch - is created to develop a new feature or fix a bug -without affecting the main branch. It isn't necessarily always stable, -but whenever it gets to a stable state, it can be merged into master. - +\includegraphics{figures/git_areas.png} \#\#\# Branching In git, +branches allow for parallel workflow on a project. It give contributors +the ability to work different features at the same time. Each branch +represents an independent line of development, and once a feature or fix +is complete, it can be merged back into the main branch. Here is a +common branching structure used in many Git projects: - Main Branch - +The main branch (a.k.a. master branch) is the default branch in a Git +repository and contains the stable version of the code. - Development +Branch - is created to develop a new feature or fix a bug without +affecting the main branch. It isn't necessarily always stable, but +whenever it gets to a stable state, it can be merged into master. - Topic Branch - A topic branch is a short-lived branch that you create and use for a single particular feature or related work. -\includegraphics{https://git-scm.com/book/en/v2/images/lr-branches-2.png} -\#\#\# Best Practices - Use descriptive commit messages. - Commit early -and often. - Keep commits focused on a single change. - Use feature -branches for new features or bug fixes. - Review and test changes before -merging. - Resolve conflicts promptly. - Keep the commit history clean -and organized. +\includegraphics{figures/git_silo_branching.png} \#\#\# Best Practices - +Use descriptive commit messages. - Commit early and often. - Keep +commits focused on a single change. - Use feature branches for new +features or bug fixes. - Review and test changes before merging. - +Resolve conflicts promptly. - Keep the commit history clean and +organized. \subsubsection{Basic Commands}\label{basic-commands} @@ -114,19 +112,19 @@ be using for this course. \textbf{Centralized}: The project has only one central hub or \emph{repository}, can accept code and everybody synchronizes their work with it. This model is suitable for small and closed-sourced projects. -\includegraphics{https://git-scm.com/book/en/v2/images/centralized_workflow.png} +\includegraphics{figures/git_workflow_centralized.png} \textbf{Integration-Manager:} There are multiple public variants of the code original code known as \emph{forks}. The integration manager can decide what features to pull from the forks. This is the model that is similar to the one used on GitHub -\includegraphics{https://git-scm.com/book/en/v2/images/integration-manager.png} +\includegraphics{figures/git_workflow_int_manager.png} \textbf{Dictator and Lieutenants Workflow:} This is similar to the integration-manager model, however due to the size of the project. A rank of integration managers is formed. one example of this is the development of the Linux kernel. -\includegraphics{https://git-scm.com/book/en/v2/images/benevolent-dictator.png} +\includegraphics{figures/git_workflow_dictator.png} GitHub is designed around a particular collaboration workflow, centered on Pull Requests. This flow works whether you're collaborating with a -- cgit v1.2.3