This series of articles is a compilation of the notes I gathered during my programming bootcamp at Green Fox Academy, last year.
You can read the other articles here:
Git
Git is the most widely used version control system (VCS) in the world today. A VCS helps a software team manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database.

The typical workflow when using Git is:
1. git pull
As many times as desired (but usually very few times):
1. Make local edits
2. Examine the local edits: git status and git diff
3. git commit
4. git pull or git pull -r
5. git pull or git pull -r
6. git push
Merge Conflicts
Merge conflicts occur when competing changes are made to the same line of a file, or when one person edits a file and another person deletes the same file.
To resolve a merge conflict caused by competing line changes, you must choose which changes to incorporate from the different branches in a new commit.
To see the beginning of the merge conflict in your file, search the file for the conflict marker <<<<<<<. When you open the file in your text editor, you’ll see the changes from the HEAD or base branch after the line <<<<<<< HEAD. Next, you’ll see =======, which divides your changes from the changes in the other branch, followed by >>>>>>> BRANCH-NAME.

Deployment
Software deployment is all of the activities that make a software system available for use.
Continuous integration/Continuous delivery (CI/CD)
Continuous integration (CI) is a software engineering practice where members of a team integrate their work with increasing frequency. In keeping with CI practice, teams strive to integrate at least daily and perhaps multiple times per day. Developers push small, frequent changes to a shared repository or ‘master’. They are integrating changes continuously, rather than periodically.
Continuous delivery (CD) is to packaging and deployment what CI is to build and test. Software is built, configured, and packaged and its deployment orchestrated in such a way that it can be released to production in a software-defined manner (low cost, high automation) at any time.

Bash
Bash is a command processor that typically runs in a text window where the user types commands that cause actions. Bash can also read and execute commands from a file, called a shell script. Like all Unix shells, it supports filename globbing (wildcard matching), piping, here documents, command substitution, variables, and control structures for condition-testing and iteration.
Building
DevOps use toolchains, that fit one or more of the following categories:
1. Coding — code development and review, source code management tools, code merging
2. Building — continuous integration tools, build status
3. Testing — continuous testing tools that provide feedback on business risks
4. Packaging — artifact repository, application pre-deployment staging
5. Releasing — change management, release approvals, release automation
6. Configuring — infrastructure configuration and management, infrastructure as code tools
7. Monitoring — applications performance monitoring, end-user experience
Environment Variables
An environment variable is made up of a name/value pair, and any number may be created and available for reference at a point in time.
At runtime, the reference to the environment variable name is replaced with its current value.
Use cases for environment variables include but are not limited to data such as:
· Execution mode (e.g., production, development, staging, etc.)
· Domain names
· API URL/URI’s
· Public and private authentication keys
· Group mail addresses, such as those for marketing, support or sales
· Service account names