git init
Browse / Essential Development Tools & Concepts Cheatsheet
Essential Development Tools & Concepts Cheatsheet
A concise reference to key tools and concepts in modern software development, aiding in efficiency and best practices.
Version Control with Git
      
        
            Basic Git Commands
        
      
    
  |  | Initializes a new Git repository. | 
| 
 | Clones a repository from a URL. | 
| 
 | Adds a file to the staging area. | 
| 
 | Commits changes with a descriptive message. | 
| 
 | Pushes local commits to a remote repository. | 
| 
 | Pulls changes from a remote repository. | 
| 
 | Shows the status of the working directory. | 
| 
 | Lists all local branches. | 
| 
 | Switches to the specified branch. | 
      
        
            Branching and Merging
        
      
    
  | 
 | Creates a new branch. | 
| 
 | Creates and switches to a new branch. | 
| 
 | Merges the specified branch into the current branch. | 
| 
 | Shows the commit history. | 
| 
 | Shows changes between commits, branches, etc. | 
      
        
            Undoing Changes
        
      
    
  | 
 | Creates a new commit that undoes the changes made in the specified commit. | 
| 
 | Unstages a file from the staging area. | 
| 
 | Discards changes in the working directory. | 
Containerization with Docker
      
        
            Basic Docker Commands
        
      
    
  | 
 | Builds a Docker image from a Dockerfile. | 
| 
 | Runs a container from an image. | 
| 
 | Lists running containers. | 
| 
 | Stops a running container. | 
| 
 | Removes a stopped container. | 
| 
 | Lists all available Docker images. | 
| 
 | Removes a Docker image. | 
      
        
            Docker Compose
        
      
    
  | 
 | Builds, (re)creates, starts, and attaches to containers defined in a  | 
| 
 | Stops and removes containers, networks, volumes, and images defined in a  | 
| 
 | Lists the containers managed by Docker Compose. | 
      
        
            Dockerfile Instructions
        
      
    
  | 
 | Specifies the base image for the Docker image. | 
| 
 | Executes a command during the image build process. | 
| 
 | Copies files or directories from the host to the container. | 
| 
 | Sets the working directory for subsequent instructions. | 
| 
 | Exposes a port for network traffic. | 
| 
 | Specifies the default command to run when the container starts. | 
Continuous Integration/Continuous Deployment (CI/CD)
      
        
            Key Concepts
        
      
    
  | Continuous Integration (CI): Automates the integration of code changes from multiple developers into a shared repository. It involves automated testing to detect integration errors early. | 
| Continuous Deployment (CD): Automates the release of code changes to production or staging environments. It extends CI by automatically deploying all code changes that pass the automated tests. | 
| Continuous Delivery: Similar to Continuous Deployment, but requires manual approval for deployment to production. Automates the steps up to the production deployment. | 
      
        
            Common CI/CD Tools
        
      
    
  | Jenkins | An open-source automation server that supports building, testing, and deploying software. | 
| GitLab CI | Integrated CI/CD pipeline within GitLab for automated building, testing, and deployment. | 
| GitHub Actions | Automates software workflows directly in your GitHub repository. | 
| CircleCI | A cloud-based CI/CD platform that automates the build, test, and deployment process. | 
| Travis CI | A cloud-based CI service used for building and testing software projects hosted on GitHub and Bitbucket. | 
      
        
            Pipeline Stages
        
      
    
  | Typical CI/CD pipelines include stages like: 
 | 
Code Quality and Linters
      
        
            Code Quality Metrics
        
      
    
  | 
 | 
      
        
            Linters and Code Analysis Tools
        
      
    
  | ESLint | A linter for JavaScript and JSX. | 
| Stylelint | A linter for CSS and SCSS. | 
| SonarQube | A platform for continuous inspection of code quality. | 
| PMD | A source code analyzer for Java, JavaScript, and other languages. | 
| Checkstyle | A tool for checking Java code style. | 
      
        
            Benefits of Using Linters
        
      
    
  | 
 | 
