Interactive git and more
Project description
Igit - Interactive Git
Igit is an interactive supplementary CLI to git for better git experience.
Main features:
- Fast commits - add, commit & push, instantly.
- Undo changes - cancel changes made to any file.
- Branch hopping - move between branches, even if you have unstaged changes, without having to stage them.
- Easy ignore - add files to ignore, sync with remote.
- Interactivity - select and check instead of typing.
Installation
With pip:
pip install igit
Usage
Fast commits
From:
# git add .
# git commit -m "commit message"
# git push
To:
igit up "commit message"
Notes:
- If you don't specify a commit message it will default to 'fast commit'.
- Same goes for
igit save
- without pushing to remote.
Undo changes
# To undo changes in an unstaged changed file:
igit undo file_1.py
# To pick a file just drop the file's name:
igit undo
Notes:
- Same goes for
igit unstage
with respect to added files.
Branch hopping
# To change branches:
igit branch
# To change branches with unstaged changes:
igit branch --hopping_on
Notes:
- When in hopping mode all change are stored to the git stash.
You can use
git stash list
to see stashed changes andgit stash pop
to retrieve stashed changes
Branch hopping
# To add files to .gitignore:
igit ignore
# To create a .gitignore:
igit ignore --create
Notes:
- In case your local .gitignore is not in sync with your remote .gitignore you can use:
# Reset .gitignore:
igit ignore --reset
And then push to remote - your current .gitignore will take effect.
Compatibility
igit is cross-platform → Windows, macOS, Linux
🤓 windows users will get best experience with windows terminal - powershell session.
Built with
- click
- gitpython
- inquirer
- emoji
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.
Local dev environment (macOS / Linux)
- Clone this project
- cd into project directory
- Run: pipenv install
- Run: pipenv --venv
- Add bash alias:
alias igit='PYTHONPATH=<LOCAL GITSY PROJECT DIR> <PIPENV VENV PATH>/bin/python3 <LOCAL IGIT PROJECT DIR>/igit/cli.py'
- Now you can run igit from bash and code changes in local igit dir will apply.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
igit-2020.10.25.tar.gz
(11.8 kB
view details)
Built Distribution
igit-2020.10.25-py3-none-any.whl
(13.8 kB
view details)
File details
Details for the file igit-2020.10.25.tar.gz
.
File metadata
- Download URL: igit-2020.10.25.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33f2578f096a45033da21fb96c4b6eaa3de888eb43545a51ad59227ab62cf88f |
|
MD5 | ee03dff5eb490f9d092fa25ba9fd08c0 |
|
BLAKE2b-256 | e75a91a3b2eff6855fea6052b140800c89bb3e5b0ec2bf094827b2a716b06b54 |
File details
Details for the file igit-2020.10.25-py3-none-any.whl
.
File metadata
- Download URL: igit-2020.10.25-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ed4e35d89ed7d104f4b8748754abdf73bc23f09da13a6461a79bf7b34eef7dd |
|
MD5 | 63c897da2214dff71210e45e458034f8 |
|
BLAKE2b-256 | 5ebf1f911193b43099604f608ae41118c04908e4e5a7c4cdcde7c0222d3e3142 |