gitz


Namegitz JSON
Version 1.7.1 PyPI version JSON
download
home_pagehttps://github.com/rec/gitz
Summary🗜 Tiny useful git commands, some dangerous 🗜
upload_time2024-01-04 16:54:22
maintainer
docs_urlNone
authorTom Ritchford
requires_python>=3.8
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            🗜 gitz - git commands for rapid development 🗜
------------------------------------------------------

This is a collection of seventeen git utilities aimed at people doing rapid
development using Git.

Gitz is for two types of users - quality-obsessed individuals who relentlessly
manicure their pull requests until every byte is in the right place; and
ultra-rapid developers who want to generate large features quickly while taking
advantage of continuous integration.

Most of these utilities only exist here, one came from a chat on Reddit and
I don't know where one of them came from.

Four of them are written in Bash, the rest use Python 3.  They have been tested
on Mac OS/X (Darwin) and on Ubuntu, and will likely work on any Unix-like
operating system.

How to install
==============

Use `pip <https://pypi.org/project/pip/>`_:

.. code-block:: bash

    pip3 install gitz

Or simply download
`this directory <https://github.com/rec/gitz/zipball/master/>`_
and make sure it's in your shell's ``PATH`` - gitz has no
external dependencies.


Getting help
============

This page contains a summary and a link to a manual page for each command.  From
the terminal, use ``-h`` flag like this: ``git new -h`` or use ``man`` like
this: ``man git-new``.


When to use gitz
=================

1. At the start of a session

   - ``git new`` safely creates fresh branches from upstream

   - ``git update`` for each branch, rebases from upstream and force-pushes

2. During development

   - ``git st`` is a more compact and prettier ``git status``

   - ``git when`` shows you when documents were last changed

3. During rapid development

   - ``git infer`` commits files with an automatically generated message -
     great for committing tiny changes for later rebasing down

4. While cleaning up a branch for review

   - ``git permute`` permutes, squashes or removes commits in the current branch

   - ``git split`` split one or more commits, perhaps with the staging area,
     into many small individual commits, one per file

5. During repository maintenance

   - ``git rotate`` rotates through all branches

   - ``git copy``, ``git delete``,  and ``git rename`` work on both local
     and upstream branches

6. Working with continuous integration

   - ``git stripe`` pushes a sequence of commits to individual remote branches
     where CI can find and test them

The movie
==========

.. figure:: https://asciinema.org/a/XwakAaMsMzKg4hIAJa18iiNac.png
    :target: https://asciinema.org/a/XwakAaMsMzKg4hIAJa18iiNac?autoplay=1&theme=solarized-light&loop=1
    :align: center
    :alt: The whole gitz movie
    :width: 430
    :height: 402

The gitz commands
-----------------


Safe commands
=============

Informational commands that don't change your repository

`git gitz <doc/git-gitz.rst>`_
  Print information about the gitz git commands

`git go <doc/git-go.rst>`_
  Open a browser page for the current repo

`git infer <doc/git-infer.rst>`_
  Commit changes with an automatically generated message
  
  (from https://github.com/moondewio/git-infer)

`git multi-pick <doc/git-multi-pick.rst>`_
  Cherry-pick multiple commits, with an optional squash

`git new <doc/git-new.rst>`_
  Create and push new branches

`git rot <doc/git-rot.rst>`_
  Rotate through branches in a Git repository

`git st <doc/git-st.rst>`_
  Colorful, compact git status

`git stripe <doc/git-stripe.rst>`_
  Push a sequence of commit IDs to a remote repository

`git when <doc/git-when.rst>`_
  For each file, show the most recent commit that changed it.
  
  Dotfiles are ignored by default.

Dangerous commands that delete, rename or overwrite branches
============================================================

`git copy <doc/git-copy.rst>`_
  Copy a git branch locally and remotely

`git delete <doc/git-delete.rst>`_
  Delete one or more branches locally and remotely

`git rename <doc/git-rename.rst>`_
  Rename a git branch locally and remotely

By default, the branches ``develop`` and ``master`` are protected -
they are not allowed to be copied to, renamed, or deleted.

You can configure this in three ways:

- setting the ``--all/-a`` flag ignore protected branches entirely

- setting the environment variable ``GITZ_PROTECTED_BRANCHES`` overrides these
  defaults

- setting a value for the keys ``PROTECTED_BRANCHES`` in the file
  .gitz.json in the top directory of your Git project has the same effect

Dangerous commands that rewrite history
=======================================

Slice, dice, shuffle and split your commits.

These commands are not intended for use on a shared or production branch, but
can significantly speed up rapid development on private branches.

`git adjust <doc/git-adjust.rst>`_
  Amend any commit, not just the last

`git permute <doc/git-permute.rst>`_
  Reorder and delete commits in the current branch

`git split <doc/git-split.rst>`_
  Split a range of commits into many single-file commits

`git update <doc/git-update.rst>`_
  Update branches from a reference branch

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/rec/gitz",
    "name": "gitz",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "",
    "author": "Tom Ritchford",
    "author_email": "tom@swirly.com",
    "download_url": "https://files.pythonhosted.org/packages/7c/2f/404a3cb2bed7c18278c5fa11b0796851b8e9aed38dd4f5f183c5bef33087/gitz-1.7.1.tar.gz",
    "platform": null,
    "description": "\ud83d\udddc gitz - git commands for rapid development \ud83d\udddc\n------------------------------------------------------\n\nThis is a collection of seventeen git utilities aimed at people doing rapid\ndevelopment using Git.\n\nGitz is for two types of users - quality-obsessed individuals who relentlessly\nmanicure their pull requests until every byte is in the right place; and\nultra-rapid developers who want to generate large features quickly while taking\nadvantage of continuous integration.\n\nMost of these utilities only exist here, one came from a chat on Reddit and\nI don't know where one of them came from.\n\nFour of them are written in Bash, the rest use Python 3.  They have been tested\non Mac OS/X (Darwin) and on Ubuntu, and will likely work on any Unix-like\noperating system.\n\nHow to install\n==============\n\nUse `pip <https://pypi.org/project/pip/>`_:\n\n.. code-block:: bash\n\n    pip3 install gitz\n\nOr simply download\n`this directory <https://github.com/rec/gitz/zipball/master/>`_\nand make sure it's in your shell's ``PATH`` - gitz has no\nexternal dependencies.\n\n\nGetting help\n============\n\nThis page contains a summary and a link to a manual page for each command.  From\nthe terminal, use ``-h`` flag like this: ``git new -h`` or use ``man`` like\nthis: ``man git-new``.\n\n\nWhen to use gitz\n=================\n\n1. At the start of a session\n\n   - ``git new`` safely creates fresh branches from upstream\n\n   - ``git update`` for each branch, rebases from upstream and force-pushes\n\n2. During development\n\n   - ``git st`` is a more compact and prettier ``git status``\n\n   - ``git when`` shows you when documents were last changed\n\n3. During rapid development\n\n   - ``git infer`` commits files with an automatically generated message -\n     great for committing tiny changes for later rebasing down\n\n4. While cleaning up a branch for review\n\n   - ``git permute`` permutes, squashes or removes commits in the current branch\n\n   - ``git split`` split one or more commits, perhaps with the staging area,\n     into many small individual commits, one per file\n\n5. During repository maintenance\n\n   - ``git rotate`` rotates through all branches\n\n   - ``git copy``, ``git delete``,  and ``git rename`` work on both local\n     and upstream branches\n\n6. Working with continuous integration\n\n   - ``git stripe`` pushes a sequence of commits to individual remote branches\n     where CI can find and test them\n\nThe movie\n==========\n\n.. figure:: https://asciinema.org/a/XwakAaMsMzKg4hIAJa18iiNac.png\n    :target: https://asciinema.org/a/XwakAaMsMzKg4hIAJa18iiNac?autoplay=1&theme=solarized-light&loop=1\n    :align: center\n    :alt: The whole gitz movie\n    :width: 430\n    :height: 402\n\nThe gitz commands\n-----------------\n\n\nSafe commands\n=============\n\nInformational commands that don't change your repository\n\n`git gitz <doc/git-gitz.rst>`_\n  Print information about the gitz git commands\n\n`git go <doc/git-go.rst>`_\n  Open a browser page for the current repo\n\n`git infer <doc/git-infer.rst>`_\n  Commit changes with an automatically generated message\n  \n  (from https://github.com/moondewio/git-infer)\n\n`git multi-pick <doc/git-multi-pick.rst>`_\n  Cherry-pick multiple commits, with an optional squash\n\n`git new <doc/git-new.rst>`_\n  Create and push new branches\n\n`git rot <doc/git-rot.rst>`_\n  Rotate through branches in a Git repository\n\n`git st <doc/git-st.rst>`_\n  Colorful, compact git status\n\n`git stripe <doc/git-stripe.rst>`_\n  Push a sequence of commit IDs to a remote repository\n\n`git when <doc/git-when.rst>`_\n  For each file, show the most recent commit that changed it.\n  \n  Dotfiles are ignored by default.\n\nDangerous commands that delete, rename or overwrite branches\n============================================================\n\n`git copy <doc/git-copy.rst>`_\n  Copy a git branch locally and remotely\n\n`git delete <doc/git-delete.rst>`_\n  Delete one or more branches locally and remotely\n\n`git rename <doc/git-rename.rst>`_\n  Rename a git branch locally and remotely\n\nBy default, the branches ``develop`` and ``master`` are protected -\nthey are not allowed to be copied to, renamed, or deleted.\n\nYou can configure this in three ways:\n\n- setting the ``--all/-a`` flag ignore protected branches entirely\n\n- setting the environment variable ``GITZ_PROTECTED_BRANCHES`` overrides these\n  defaults\n\n- setting a value for the keys ``PROTECTED_BRANCHES`` in the file\n  .gitz.json in the top directory of your Git project has the same effect\n\nDangerous commands that rewrite history\n=======================================\n\nSlice, dice, shuffle and split your commits.\n\nThese commands are not intended for use on a shared or production branch, but\ncan significantly speed up rapid development on private branches.\n\n`git adjust <doc/git-adjust.rst>`_\n  Amend any commit, not just the last\n\n`git permute <doc/git-permute.rst>`_\n  Reorder and delete commits in the current branch\n\n`git split <doc/git-split.rst>`_\n  Split a range of commits into many single-file commits\n\n`git update <doc/git-update.rst>`_\n  Update branches from a reference branch\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "\ud83d\udddc Tiny useful git commands, some dangerous \ud83d\udddc",
    "version": "1.7.1",
    "project_urls": {
        "Homepage": "https://github.com/rec/gitz",
        "Repository": "https://github.com/rec/gitz"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e017caf663b2fbab411483a97fb81a45f93904dba8272d4815541cdf37201654",
                "md5": "73fdf42c2fa856d4e10ed2740ed05f56",
                "sha256": "2a66fd8b77faf073d0ae90281150a35de54ee9b10b66db52fb2ce7eaa3d1a994"
            },
            "downloads": -1,
            "filename": "gitz-1.7.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "73fdf42c2fa856d4e10ed2740ed05f56",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 42586,
            "upload_time": "2024-01-04T16:54:20",
            "upload_time_iso_8601": "2024-01-04T16:54:20.853288Z",
            "url": "https://files.pythonhosted.org/packages/e0/17/caf663b2fbab411483a97fb81a45f93904dba8272d4815541cdf37201654/gitz-1.7.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7c2f404a3cb2bed7c18278c5fa11b0796851b8e9aed38dd4f5f183c5bef33087",
                "md5": "7050c27a5cff791d0d33c2d4f8e53a70",
                "sha256": "8feea61c6929226fb5a42188d9b77d4645587ee80cad424f78ad0cf2c103108a"
            },
            "downloads": -1,
            "filename": "gitz-1.7.1.tar.gz",
            "has_sig": false,
            "md5_digest": "7050c27a5cff791d0d33c2d4f8e53a70",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 31733,
            "upload_time": "2024-01-04T16:54:22",
            "upload_time_iso_8601": "2024-01-04T16:54:22.339589Z",
            "url": "https://files.pythonhosted.org/packages/7c/2f/404a3cb2bed7c18278c5fa11b0796851b8e9aed38dd4f5f183c5bef33087/gitz-1.7.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-04 16:54:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rec",
    "github_project": "gitz",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "gitz"
}
        
Elapsed time: 0.63291s