What Does the “git branch” Command Do?

Problem scenario
You have seen “git branch” and heard of branching strategies.  What does “git branch” actually do?  How can you use “git branch”?

Solution
In the context of version control or configuration management, branching is a fork of a codebase. 
(Forking is the creation of an independent copy of a repository; a branch is the same except it is a copy of a repository within the same repository for the purpose of merging with the main or “trunk” branch.

Is It Acceptable to Store Configuration Files in Git, Subversion, CVS or Another Code Versioning Tool?

Problem scenario
You like the backup feature of a code versioning tool for potentially restoring files in a disaster recovery situation.  You want to store complete code bases including necessary configuration files in such a repository.  

This reputable link (https://www.cyberciti.biz/tips/my-10-unix-command-line-mistakes.html) says to use code versioning tools to store configuration files.  However this different reputable link says to not use code versioning tools to store configuration files. 

How Do You Upload Code to a GitLab Project from a Server That Does Not Have a Desktop UI?

Problem scenario
You have a Linux server with the command prompt but no GUI.  A separate server hosts GitLab.  How do you configure the first character-based server to use GitLab?

Solution
This assumes that you have deployed GitLab; if you need directions for this, see this posting.  This assumes that you have created a project in GitLab.  If you need directions for this,

How Do You Create a New Project in GitLab?

Problem scenario
You want to test out GitLab.  How do you create your first project?

Solution
Prerequisite
This assumes you have GitLab installed; if you do not know how, see this posting.

Procedures
1.  Log into GitLab via the web UI.  (If you do not have credentials and you set it up, the web UI for GitLab should have prompted you to enter a new password twice. 

How Do You Install GitLab on Debian or Ubuntu Linux?

Problem scenario
You want to do deploy (install and configure) GitLab on a Debian Linux server.  What do you do?

Solution
1.  Get a Debian or Ubuntu Linux server with either 3.5 GB of RAM or at least 1.5 GB of RAM and 2 GB of virtual memory.  If you need to resize an AWS instance, see this posting.  If you need to resize a GCP instance,

How Do You Troubleshoot the GitLab Integration Webhook Error “Permission you need to have (but didn’t) hudson.model.Hudson”?

Problem scenario
You are trying to configure GitLab to work with Jenkins (so the two are integrated to enable  CI, continual integration, in your environment).  When you test a connection of an integration  webhook from GitLab to reach out to Jenkins you receive this error:

“Hook executed successfully but returned HTTP 403… You are authenticated as anonymous Groups that you are in: Permission you need to have (but didn’t) hudson.model.Hudson.Read…which is implied by hudson.security.Permission.GenericRead…”

How do you solve this problem?

What Are Some Differences in the Two Code Versioning Systems Known as Git and Subversion?

Code versioning systems keep track of different versions of various programs and relevant flat files that the programs may use (e.g., initialization, configuration, parameter consumption, files etc.). Some people refer to them as SCMs (Source Control Managers) or VCSes (Version Control Systems).

Code from versioning systems can be read from a centralized repository and be written to a local drive.  This is considered a pull. 

A List of Git Books

19 Git Tips for Everyday Use by Alex Kras
The Beginner’s Guide to GitHub by Thomas Mailund
Building Tools with GitHub: Customize Your Workflow by Chris Dawson and Ben Straub
Distributed Version Control with Git: Mastering the Git Command Line – Third Edition (vogella Series) by Lars Vogel and Alex Blewitt
Dive into GIT by James Ware
Eclipse 4.5 Git Course for Java Eclipse Developers by John R.