Files
awesome-kubernetes/docs/git.md
Inaki Fernandez a73da16ad9 reorganization
2020-05-12 18:43:32 +02:00

17 KiB
Raw Blame History

Git and Patterns for Managing Source Code Branches. CI/CD BOTs

Git Distributed Version-Control System

Design By Contract

Wikipedia: Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software.

It prescribes that software designers should define formal, precise and verifiable interface specifications for software components, which extend the ordinary definition of abstract data types with preconditions, postconditions and invariants. These specifications are referred to as "contracts", in accordance with a conceptual metaphor with the conditions and obligations of business contracts.

Git Cheat Sheets

Patterns for Managing Source Code Branches (Branching Models/Workflows)

Trunk Based Development

Feature Branch Development (aka GitFlow)

Git Flow

Trunk-based Development vs. Git Flow

Alternative Branching Models

Feature Flags (Feature Toggles)

Git Commands

  • Show commit logs:
git log --oneline --all --graph --decorate

BitBucket

GitLab

GitHub

Git Tools

Azure DevOps (formerly known as VSTS)

CI/CD BOTs (aka Merge BOTs)

  • The CI/CD Bot or Merge Bot is a tool to orchestrate pull requests merging into the stable branches.
  • Wikipedia: Software bot

Tips

  • Use bots to accomplish tasks like merging PR's that have been approved and automatically updating dependencies. Usage of one of these bots might allow us to trigger certain builds based off of specific GitHub tags, it would allow us to only selectively run certain test suites and increase the throughput of the build by only testing changes made in a branch / PR.
  • Investigate options that are available and see if we can integrate them with CI.
  • We should be able to configure this bot to automatically apply labels to PR's based off of what is changed in a PR. For instance, if a PR contains any documentation changes, the area/Documentation label can be applied.

Solutions

Bors. A GitHub bot

Marge. A GitHub bot

Mergify