├── .gitignore ├── LICENSE ├── Procfile ├── README.md ├── gitgifs ├── gitgifs │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── static │ ├── css │ │ └── tachyons.min.css │ ├── font-awesome │ │ ├── css │ │ │ ├── font-awesome.css │ │ │ └── font-awesome.min.css │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ └── fontawesome-webfont.woff │ │ ├── less │ │ │ ├── bordered-pulled.less.txt │ │ │ ├── core.less │ │ │ ├── fixed-width.less │ │ │ ├── font-awesome.less │ │ │ ├── icons.less │ │ │ ├── larger.less │ │ │ ├── list.less │ │ │ ├── mixins.less │ │ │ ├── path.less │ │ │ ├── rotated-flipped.less │ │ │ ├── spinning.less │ │ │ ├── stacked.less │ │ │ └── variables.less │ │ └── scss │ │ │ ├── _bordered-pulled.scss.txt │ │ │ ├── _core.scss │ │ │ ├── _fixed-width.scss │ │ │ ├── _icons.scss │ │ │ ├── _larger.scss │ │ │ ├── _list.scss │ │ │ ├── _mixins.scss │ │ │ ├── _path.scss │ │ │ ├── _rotated-flipped.scss │ │ │ ├── _spinning.scss │ │ │ ├── _stacked.scss │ │ │ ├── _variables.scss │ │ │ └── font-awesome.scss │ ├── gifs │ │ ├── git-add-force.gif │ │ ├── git-add-interactive.gif │ │ ├── git-add-update.gif │ │ ├── git-add-verbose.gif │ │ ├── git-bisect-bad.gif │ │ ├── git-bisect-help.gif │ │ ├── git-bisect-log.gif │ │ ├── git-bisect-reset.gif │ │ ├── git-bisect-skip.gif │ │ ├── git-bisect-start.gif │ │ ├── git-blame-l.gif │ │ ├── git-bundle-create.gif │ │ ├── git-bundle-unbundle.gif │ │ ├── git-cat-file-s.gif │ │ ├── git-cat-file-t.gif │ │ ├── git-checkout-branch.gif │ │ ├── git-checkout-detach-commit.gif │ │ ├── git-checkout-detach.gif │ │ ├── git-checkout.gif │ │ ├── git-clean-d.gif │ │ ├── git-clean-dry-run.gif │ │ ├── git-clean-exclude.gif │ │ ├── git-clean-f.gif │ │ ├── git-clean-i.gif │ │ ├── git-clean-quiet.gif │ │ ├── git-clean-x.gif │ │ ├── git-commit-all.gif │ │ ├── git-commit-author.gif │ │ ├── git-commit-long.gif │ │ ├── git-commit-message.gif │ │ ├── git-commit-null.gif │ │ ├── git-commit-porcelain.gif │ │ ├── git-commit-short.gif │ │ ├── git-config-color.gif │ │ ├── git-config-unset.gif │ │ ├── git-config.gif │ │ ├── git-diff-color.gif │ │ ├── git-diff-compact-summary.gif │ │ ├── git-diff-ignore-blank-lines.gif │ │ ├── git-diff-minimal.gif │ │ ├── git-diff-numstat.gif │ │ ├── git-diff-shortstat.gif │ │ ├── git-difftool.gif │ │ ├── git-filter.gif │ │ ├── git-grep-column.gif │ │ ├── git-grep-lineNumber.gif │ │ ├── git-grep-quiet.gif │ │ ├── git-help-all.gif │ │ ├── git-help-guide.gif │ │ ├── git-help-man.gif │ │ ├── git-help-web.gif │ │ ├── git-help-web1.gif │ │ ├── git-init-q.gif │ │ ├── git-init-separate-git-dir.gif │ │ ├── git-init-template.gif │ │ ├── git-init-unmask.gif │ │ ├── git-log-pretty-short.gif │ │ ├── git-ls-tree.gif │ │ ├── git-mv.gif │ │ ├── git-reset-hard.gif │ │ ├── git-reset-keep.gif │ │ ├── git-reset-merge.gif │ │ ├── git-reset-mixed.gif │ │ ├── git-reset-soft.gif │ │ ├── git-rm.gif │ │ ├── git-shared-true.gif │ │ ├── git-shortlog-committer.gif │ │ ├── git-shortlog-email.gif │ │ ├── git-shortlog-numbered.gif │ │ ├── git-shortlog-summary.gif │ │ ├── git-show-abbrev-commit.gif │ │ ├── git-show-expand-ttabs.gif │ │ ├── git-show-oneline.gif │ │ ├── git-show-signature.gif │ │ ├── git-stash-branch.gif │ │ ├── git-stash-clear.gif │ │ ├── git-stash-drop.gif │ │ ├── git-stash-list.gif │ │ ├── git-stash-show.gif │ │ ├── git-status-branch.gif │ │ ├── git-status-long.gif │ │ ├── git-status-short.gif │ │ └── git-status-verbose.gif │ ├── js │ │ └── index.js │ └── logo │ │ └── gitgifs.png └── templates │ └── base.html └── requirements.txt /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .coverage.* 42 | .cache 43 | nosetests.xml 44 | coverage.xml 45 | *,cover 46 | .hypothesis/ 47 | 48 | # Translations 49 | *.mo 50 | *.pot 51 | 52 | # Django stuff: 53 | *.log 54 | local_settings.py 55 | 56 | # Flask stuff: 57 | instance/ 58 | .webassets-cache 59 | 60 | # Scrapy stuff: 61 | .scrapy 62 | 63 | # Sphinx documentation 64 | docs/_build/ 65 | 66 | # PyBuilder 67 | target/ 68 | 69 | # IPython Notebook 70 | .ipynb_checkpoints 71 | 72 | # pyenv 73 | .python-version 74 | 75 | # celery beat schedule file 76 | celerybeat-schedule 77 | 78 | # dotenv 79 | .env 80 | 81 | # virtualenv 82 | venv/ 83 | ENV/ 84 | 85 | # Spyder project settings 86 | .spyderproject 87 | 88 | # Rope project settings 89 | .ropeproject 90 | 91 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Tapasweni Pathak 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn --pythonpath gitgifs gitgifs.wsgi --log-file - 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GitGIFs 2 | 3 | ![](https://img.shields.io/github/issues/tapaswenipathak/GitGIFs.svg) 4 | ![](https://img.shields.io/github/forks/tapaswenipathak/GitGIFs.svg) 5 | ![](https://img.shields.io/github/stars/tapaswenipathak/GitGIFs.svg) 6 | ![](https://img.shields.io/github/license/tapaswenipathak/GitGIFs.svg) 7 | ![](https://img.shields.io/twitter/url/https/github.com/tapaswenipathak/GitGIFs.svg?label=Learn%20Git%20using%20GIF) 8 | 9 | Commands implemented (order based on complexity) 10 | - [ ] `git init` 11 | - `git init --q` 12 | - `git init --template` 13 | - `git init --separate-git-dir` 14 | - `git --shared[=(false|true|umask|group|all|world|everybody|0xxx)]` 15 | - `git init unmask` 16 | - [ ] `git clone` 17 | - `git clone --template=` 18 | - `git clone -o ` 19 | - `git clone[-b ` 20 | - `git clone -u ` 21 | - `git clone --dissociate` 22 | - `git clone --separate-git-dir ` 23 | - [ ] `git help` 24 | - `git help --all` 25 | - `git help --[no-]verbose]` 26 | - `git help --guide` 27 | - `git help --info` 28 | - `git help --man` 29 | - `git help --web` 30 | - [ ] `git diff` with params 31 | - `git diff --patch` 32 | - `git diff --patch-with-raw` 33 | - `git diff --indent-heuristic` 34 | - `git diff --no-indent-heuristic` 35 | - `git diff --minimal` 36 | - `git diff --histogram` 37 | - `git --diff-algorithm={patience|minimal|histogram|myers}` 38 | - `git diff --compact-summary` 39 | - `git diff --shortstat` 40 | - `git diff --numstat` 41 | - `git diff summary` 42 | - `git diff --color[=]` 43 | - `git diff no` 44 | - `git diff default` 45 | - `git diff --ignore-space-at-eol` 46 | - `git diff function-context` 47 | - `git diff --ignore-blank-lines` 48 | - [ ] `git difftool` 49 | - [ ] `git clean` with params 50 | - `git clean -d` 51 | - `git clean --force` 52 | - `git clean --interactive` 53 | - `git clean quiet` 54 | - `git clean --dry-run` 55 | - `git clean --exclude=` 56 | - `git clean -x` 57 | - [ ] `git rm` with params 58 | - `git rm -f` 59 | - `git rm --cached` 60 | - `git rm --quiet` 61 | - [ ] `git mv` with params 62 | - `git mv -f` 63 | - `git rm -k` 64 | - `git rm --dry-run` 65 | - `git rm --verbose` 66 | - [ ] `git pull` with params 67 | - `git pull --quiet` 68 | - `git pull --verbose` 69 | - `git pull --commit` 70 | - `git pull --no-commit` 71 | - `git pull --log` 72 | - `git pull --no-log` 73 | - `git pull stat` 74 | - `git pull --no-stat` 75 | - `git pull --squash` 76 | - `git pull --no-squash` 77 | - `git pull --summary` 78 | - `git pull --no-summary` 79 | - `git pull --append` 80 | - `git pull --update-shallow` 81 | - `git pull --keep` 82 | - `git pull --ipv4` 83 | - `git pull --ipv6` 84 | - [ ] `git bundle` with params 85 | - `git bundle create` 86 | - `git bundle unbundle` 87 | - [ ] `git add` with params 88 | - `git add --verbose` 89 | - `git add --force` 90 | - `git add --interactive` 91 | - `git add --update` 92 | - `git add --chmod=(+|-)x` 93 | - `git add --ignore-errors` 94 | - [ ] `git commit` with params 95 | - `git commit --patch` 96 | - `git commit --all` 97 | - `git commit --reuse-message=` 98 | - `git commit --fixup=` 99 | - `git commit --squash=` 100 | - `git commit --short` 101 | - `git commit --branch` 102 | - `git commit --long` 103 | - `git commit --null` 104 | - `git commit --porcelain` 105 | - `git commit --author=` 106 | - `git commit --message=` 107 | - `git commit --date=` 108 | - `git commit --allow-empty` 109 | - `git commit --amend` 110 | - `git commit --only` 111 | - `git commit --quiet` 112 | - `git commit --status` 113 | - [ ] `git status` 114 | - `git status --short` 115 | - `git status --branch` 116 | - `git status --show-stash` 117 | - `git status --long` 118 | - `git status --verbose` 119 | - [ ] `git merge` with params 120 | - `git merge --stat` 121 | - `git merge --no-commit` 122 | - `git merge --squash` 123 | - `git merge --abort` 124 | - `git merge --continue` 125 | - [ ] `git checkout` with params 126 | - `git checkout ` 127 | - `git checkout --detach []` 128 | - `git checkout [--detach] ` 129 | - `git checkout --quiet` 130 | - [ ] `git reset` with params 131 | - `git reset [] []` 132 | - `git reset --soft` 133 | - `git reset --mixed` 134 | - `git reset --hard` 135 | - `git reset --merge` 136 | - `git reset --keep` 137 | - [ ] `git remote` with params 138 | - `git remote [-v | --verbose]` 139 | - `git remote rename ` 140 | - `git remote remove ` 141 | - `git remote set-head (--delete | )` 142 | - `git remote get-url [--push] [--all] ` 143 | - `git remote set-url [--push] []` 144 | - `git remote set-url --add [--push] ` 145 | - `git remote set-url --delete [--push] ` 146 | - `git remote prune [-n | --dry-run] …​` 147 | - [ ] `git fetch` with params 148 | - `git fetch [] ` 149 | - `git fetch --all []` 150 | - `git fetch --shallow-since=` 151 | - `git fetch --shallow-exclude=` 152 | - `git fetch --prune-tags` 153 | - `git fetch --quiet` 154 | - `git fetch --verbose` 155 | - `git fetch ` 156 | - [ ] `git archive` with params 157 | - `git archive --format=` 158 | - `git archive --list` 159 | - `git archive --verbose` 160 | - `git archive --prefix` 161 | - `git archive --remote=` 162 | - `git archive --worktree-attributes` 163 | - [ ] `git shortlog` with params 164 | - `git log --pretty=short` 165 | - `git shortlog --numbered` 166 | - `git shortlog --summary` 167 | - `git shortlog --email` 168 | - `git shortlog --committer` 169 | - [ ] `git push` with params 170 | - `git push --all` 171 | - `git push --prune` 172 | - `git push --mirror` 173 | - `git push --procelain` 174 | - `git push --delete` 175 | - `git push --tags` 176 | - `git push --follow-tags` 177 | - `git push --signed=(true|false|if-asked)` 178 | - `git push --quiet` 179 | - `git push --verbose` 180 | - [ ] `git tag` with params 181 | - `git tag --annotate` 182 | - `git tag --sign` 183 | - `git tag --f` 184 | - `git tag --delete` 185 | - `git tag --num` 186 | - `git tag --list` 187 | - `git tag --sort=` 188 | - `git tag --color[=]` 189 | - `git tag --contains []` 190 | - `git tag --no-contains []` 191 | - `git tag --create-reflog` 192 | - `git tag commit` 193 | - [ ] `git show` with params 194 | - `git show --abbrev-commit` 195 | - `git show --oneline` 196 | - `git show --expand-tabs` 197 | - `git show --no-expand-tabs` 198 | - `git show --notes[=]` 199 | - `git show --show-signature` 200 | - [ ] `git describe` with params 201 | - `git describe ` 202 | - `git describe --all` 203 | - `git describe --tags` 204 | - `git describe --debug` 205 | - `git describe --long` 206 | - `git describe --match ` 207 | - `git describe --exclude ` 208 | - `git describe --always` 209 | - [ ] `git log` with params 210 | - `git log --follow` 211 | - `git log --source` 212 | - `git log --full-diff` 213 | - `git log --source` 214 | - `git log --log-size` 215 | - `git log --max-count=` 216 | - `git log --author=` 217 | - `git log --committer=` 218 | - `git log --grep-reflog=` 219 | - `git log --grep=` 220 | - `git log --basic-regexp` 221 | - `git log --remove-empty` 222 | - `git log --branches[=]` 223 | - `git log --remotes[=]` 224 | - `git log --glob=` 225 | - `git log --reflog` 226 | - `git log --bisect` 227 | - `git log --stdin` 228 | - `git log --sparse` 229 | - `git log --full-history` 230 | - `git log --notes[=]` 231 | - [ ] `git credential` 232 | - [ ] `git branch` with params 233 | - `git branch --create-reflog` 234 | - `git branch -d` 235 | - `git branch (--set-upstream-to= | -u ) []` 236 | - `git branch --unset-upstream []` 237 | - [ ] `git mergetool` with params 238 | - `git mergetool [--tool=]` 239 | - [ ] `git rebase` with params 240 | - `git rebase --interactive --exec ` 241 | - `git rebase --interactive --exec ` 242 | - `git rebase --continue | --skip | --abort | --quit` 243 | - [ ] `git revert` with params 244 | - `git revert --continue` 245 | - `git revert --quit` 246 | - `git revert --abort` 247 | - `git revert ` 248 | - [ ] `git stash` with params 249 | - `git stash list ` 250 | - `git stash show ` 251 | - `git stash drop --quiet ` 252 | - `git stash branch ` 253 | - `git stash clear` 254 | - `git stash create ` 255 | - `git stash store -m|--message ` 256 | - [ ] `git blame` with params 257 | - `git log --pretty=oneline -S'blame_usage'` 258 | - `git blame -L :` 259 | - [ ] `git config` with params 260 | - `git config [] [--type=] --add name value` 261 | - `git config [] --unset name [value_regex]` 262 | - `git config [] --get-color name [default]` 263 | - [ ] `git grep` with params 264 | - `git grep grep.lineNumber` 265 | - `git grep grep.column` 266 | - `git grep grep.patternType` 267 | - `git grep grep.extendedRegexp` 268 | - `git grep --quiet` 269 | - `git grep --all-match -e NODE -e` 270 | - `git grep 'time_t' -- regex` 271 | - [ ] `git filter` with params 272 | - [ ] `git cat-file` with params 273 | - `git cat-file -t -s` 274 | - `git cat-file --batch` 275 | - [ ] `git ls-tree` with params 276 | - [ ] `git bissect` with params 277 | - `git bisect reset []` 278 | - `git bisect log` 279 | - `git bisect help` 280 | - `git bisect run ` 281 | - `git bisect skip [()]` 282 | - `git bisect bad` 283 | - `git bisect good tag` 284 | - [ ] `git cherry-pick` with params 285 | - `git cherry-pick --continue` 286 | - `git cherry-pick --quit` 287 | - `git cherry-pick --abort` 288 | - `git cherry-pick ` 289 | - [ ] `git am` with params 290 | - `git am ` 291 | - `git am --signoff` 292 | - `git am --message-id` 293 | - `git am --quiet` 294 | - `git am --whitespace=