Project

git-squash

0.0
No commit activity in last 3 years
No release in over 3 years
Sometimes execute the basic git commands is very boring and repetitive so, this shortcut will make your git repository be most clean.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 1.2
= 2.5.0
 Project Readme

###Git shortcut to automate the commit, squash and push commands

Sometimes executing basic git commands is very boring and repetitive so, this shortcut will help you a lot. It will run these commands in this sequence:

  • git merge-base HEAD YOUR_CURRENT_BRANCH
  • git reset --soft MERGE_BASE_ID
  • git add .
  • git commit -m "YOUR_MESSAGE_COMMIT"
  • git push origin -f YOUR_CURRENT_BRANCH

Warnings:

  • #1: This procedures clears all the commit history. So do not run it if you'll need this history.
  • #2: This script run a force commit. So, be careful.

The Script is similar to:

#!/bin/bash

CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
COMMIT_MESSAGE=$1
FROM_BRANCH=${2-master}
MERGE_BASE_ID=$(git merge-base HEAD $FROM_BRANCH)

echo -e "$(tput setaf 2)** Executing reset command$(tput sgr0)"
git reset --soft $MERGE_BASE_ID

echo -e "$(tput setaf 2)\n** Executing add command$(tput sgr0)\n"
git add .

echo -e "$(tput setaf 2)\n** Executing commit command$(tput sgr0)\n"
git commit -S -am "$COMMIT_MESSAGE"

echo -e "$(tput setaf 2)\n** Executing push command$(tput sgr0)\n"
git push origin -f $CURRENT_BRANCH

How to install:

Run this command line:

$ gem install git-squash

Usage:

At some git repository, just run:

git squash

or

git-squash "Commit Message"

Ps. The default branch is master

or

git-squash "Commit Message" "branch_name_from_reset"