Using Gulp to minify CSS, JS and HTML Jekyll
Write a Gulp task to minify CSS, JS and HTML and use it in your jekyll project.

Make your corrections and stage them with git add, then:
$ git commit --amend
Add -a to automatically stage all changes to tracked files (skip‐
ping git add). Add -C HEAD to reuse the previous commit message without stopping to edit it.
$ git rebase -i HEAD~n
The history involved should be linear. You can add -p to preserve
merge commits, but this can get tricky depending on the changes
you want to make.
$ git reset HEAD~n
This removes the last n commits of a linear history from the current branch, leaving the corresponding changes in your working files. You can add --hard to make the working tree reflect the
new branch tip, but beware: this will also discard any current uncommitted changes, which you will lose with no recourse.
$ git commit --reset-author -C rev
Add --edit to edit the message before committing
$ git cherry-pick rev
If the commit is in a different local repository, ~/other:
``` $ git –git-dir ~/other/.git format-patch -1 –stdout rev | git am ``
git status shows these as part of its report, but to just list their
names:
$ git diff --name-only --diff-filter=U
List local branches: git branch
List all branches: git branch -a
Get a compact summary of local branches and status with respect to their upstream counterparts:
git branch -vv
Get detail about the remote as well: git remote show origin (or other named remote)
$ git status
Add -sb for a more compact listing
$ git add -A
This does git add for every changed, new, and deleted file in your
working tree. Add --force to include normally ignored files; you
might do this when adding a new release to a “vendor branch,”
which tracks updates to other projects you obtain by means other
than Git (e.g., tarballs).
git diff shows unstaged changes; add --stage to see staged
changes instead. Add --name-only or --name-status for a more
compact listing
shell git stash saves and sets your outstanding changes aside, so you
can perform other operations that might be blocked by them,
such as checking out a different branch. You can restore your
changes later with git stash pop.
shell $ git branch foo origin/foo
This adds a local branch and sets up push/pull tracking as if you
had done git checkout foo, but does not do the checkout or
change your current branch.
shell $ git ls-tree -r --name-only rev This listing is restricted to the current directory; add --fulltree for a complete list.
git show rev is easier than git diff rev~ rev, and shows the
author, timestamp, commit ID, and message as well. Add -s to
suppress the diff and just see the latter information; use --namestatus or --stat to summarize the changes. It also works for merge commits, showing conflicts from the merge as with git log --cc
git remote does this; add -v to see the corresponding URLs con‐
figured for push and pull (ordinarily the same):
shell $ git remote -v
shell $ git remote set-url remote URL
$ git remote prune origin
This removes tracking for remote branches that have been deleted upstream.
perhaps after editing history with git rebase -i or git re set, or deleting a branch:
$ git log -g
A root commit always shows the addition of all the files in its tree,
which can be a large and uninformative list; you can suppress this
with:
$ git config [--global] log.showroot false
git log -p shows the complete patch for each commit it lists,
while these options summarize the changes in different ways:
$ git log --name-status
$ git log --stat
$ git log