Skip to main content

Tool for continuous delivery using git

Project description

.. image:: https://www.gitcd.io/logo.svg
:height: 150px
:width: 150px


Continuous tool for working with git
====================================

**Development Status**

.. image:: https://img.shields.io/pypi/status/gitcd.svg
:target: https://pypi.org/project/gitcd/

.. image:: https://travis-ci.org/claudio-walser/gitcd.svg?branch=master
:target: https://travis-ci.org/claudio-walser/gitcd

.. image:: https://readthedocs.org/projects/gitcd/badge/?version=latest
:target: https://gitcd.readthedocs.org/en/latest/?badge=latest

.. image:: https://img.shields.io/github/last-commit/claudio-walser/gitcd.svg
:target: https://github.com/claudio-walser/gitcd/commits/master



**Package Info**

.. image:: https://badge.fury.io/py/gitcd.svg
:target: https://pypi.org/project/gitcd/

.. image:: https://img.shields.io/pypi/wheel/gitcd.svg
:target: https://pypi.org/project/gitcd/

.. image:: http://img.shields.io/badge/license-APACHE2-blue.svg
:target: https://github.com/claudio-walser/gitcd/blob/master/LICENSE

.. image:: https://img.shields.io/pypi/pyversions/gitcd.svg
:target: https://pypi.org/project/gitcd/


Description
-----------

**gitcd** is a little helper for continuous integration workflows using
git as scm.

Installation
------------

Since gitcd is using python3 by default, you better upgrade.
Unfortunately installing kivy by script is not that easy, therefore you need to take some extra manual work. I might takle this in future releases.

After successful installation of python3 and pip for pyhton3, install the following prerequisites:


- MacOSX:

.. code:: console

brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer
pip3 install -I Cython==0.25.2
pip3 install kivy
pip3 install kivymd

- Debian/Ubuntu:

.. code:: console

apt-get install python3-kivy
pip3 install kivymd

Then you are ready to install gitcd with the following command:

.. code:: console

pip3 install --user --upgrade gitcd

If you are on mac osx and your local python folder isn't in your PATH variable you might add it to $PATH or symlink it in /usr/local/bin with sudo.

**Max OSX**

.. code:: console

sudo ln -s /Users/<username>/Library/Python/<python-version>/bin/git-cd /usr/local/bin/

The same applies to linux, however, the path is different. (On usual Distributions this is in $PATH already)

.. code:: console

sudo ln -s /home/<username>/.local/bin/git-cd /usr/local/bin/

Argument Completion
-------------------

Gitcd supports argument completion, to activate this feature in linux run:

.. code:: console

sudo activate-global-python-argcomplete3

Under OSX it isn't that simple unfortunately. Global completion requires bash support for complete -D, which was introduced in bash 4.2. On OS X or older Linux systems, you will need to update bash to use this feature. Check the version of the running copy of bash with echo $BASH_VERSION. On OS X, install bash via Homebrew (brew install bash), add /usr/local/bin/bash to /etc/shells, and run chsh to change your shell.
Afterwards you might be able to also just run:

.. code:: console

sudo activate-global-python-argcomplete3

Usage
-----

Check version and upgrade
~~~~~~~~~~~~~~~~~~~~~~~~

Gitcd is aware of it's local and remote versions and may upgrade itself if you want to.

.. code:: console

git cd upgrade


Initialize a project
~~~~~~~~~~~~~~~~~~~~

cd into one of your local directories
representing a git repository and run the init command. Pass your configuration, for most cases the default values should be ok.

.. code:: console

git cd init


Pull request status
~~~~~~~~~~~~~~~~~~~

You are able to see the status of a feature
branch including the pull request and if it has already been reviewed by
someone.

.. code:: console

git cd status


Clean up local branches
~~~~~~~~~~~~~~~~~~~~~~~

The tool is able to cleanup all local
branches which doesent exist on the origins. This is done with the clean command.

.. code:: console

git cd clean


Start new feature
~~~~~~~~~~~~~~~~~

Starts a new feature branch from your master branch. If you dont pass a branchname, you will be asked later.

.. code:: console

git cd start <branchname>


Test a feature branch
~~~~~~~~~~~~~~~~~~~~~

Merges a feature branch into your development branch. If you dont pass a branchname, your current branch will be taken.

.. code:: console

git cd test <branchname>


Open a pull request for code review
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Opens a pull request to your master branch. If you dont pass a branchname, your current branch will be taken.

.. code:: console

git cd review <branchname>


Finish a feature branch
~~~~~~~~~~~~~~~~~~~~~~~

Merges it into your master and asks for permission to delete your
feature branch. If you dont pass a branchname, your current branch will be taken.

.. code:: console

git cd finish <branchname>


Compare your current branch
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Compares your current branch against the given branchname or the latest
tag if none is given.

.. code:: console

git cd compare <branchname>


Tagging the master branch
~~~~~~~~~~~~~~~~~~~~~~~~~

Creates a tag from your master branch and pushes it to remote.

.. code:: console

git cd release


Known Issues
------------

If you discover any bugs, feel free to create an issue on GitHub fork
and send us a pull request.

`Issues List`_.


Authors
-------

- Claudio Walser (https://github.com/claudio-walser)
- Urban Etter (https://github.com/mms-uret)
- Gianni Carafa (https://github.com/mms-gianni)


Contributing
------------

1. Fork it
2. Create your feature branch (``git cd start my-new-feature``)
3. Commit your changes (``git commit -am 'Add some feature'``)
4. Push to the branch (``git push origin feature/my-new-feature``)
5. Create new Pull Request (``git cd review my-new-feature``)


License
-------

Apache License 2.0 see
https://github.com/claudio-walser/gitcd/blob/master/LICENSE

.. _Issues List: https://github.com/claudio-walser/gitcd/issues



Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

gitcd-2.0.6-py3-none-any.whl (35.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page