Package: gitmopy
gitmopyAn interactive Python implementation of the Gitmoji convention:gitmoji.dev/pip install gitmopyHow to useI typically use$ gitmopy commit --add --keep-aliveNavigate through options with ⬆️ and ⬇️Selectoption withspaceValidateselection withenterPresstabtoauto-completePresstabon an empty line to see historyRestart commitwithcrtl+cThe keyboard interruption will be caught once, then pressenterto restartPush (and set upstream if need be)Commit again 🔄You can also select another set of default emojis tailored towards AI/ML development by runninggitmopy configthen pressingEnterand choosingai-devmojisas the config option.Use your own emojis by editing the "custom emojis" file listed bygitmopy info!See all available emojisSuggested shortcutsaliasgpy="gitmopy"aliasgpyc="gitmopy commit"aliasgpya="gitmopy commit --add"aliasgpyk="gitmopy commit --add --keep-alive"Examples# Typical daily use-case# ----------------------# continuously commit, interactively select files to stage$gitmopycommit--add--keep-alive# same using an alias, + push after every commit (could be dangerous)$gpyk--push# Specific usage# --------------# commit currently staged files. Will fail if no file is staged.$gitmopycommit# Enable interactive file selection if no file is currently staged. Ignored if# there are staged files.$gitmopycommit--add# Commit continuously: don't leave the CLI after the first commit but restart# the commit procedure.$gitmopycommit--keep-alive# Push to remote repositories after commit.# Interactively select remotes to push to if there are more than 1.$gitmopycommit--push# Push to specific remotes$gitmopycommit--push--remoteorigin--remoteupstream# Make and display a commit message without staging/committing/pushing$gitmopycommit--dry# configure gitmopy$gitmopyconfig# print version, data paths and current configuration$gitmopyinfo# print helps$gitmopy--help
$gitmopycommit--help⚠️ The sync feature is still experimental. It willpullthenpushbut in the case of several remotes and the branch not existing on one of them, I recommend you deal with it withgitmanually.User guide$ gitmopy info

gitmopy info:
  version      : 0.4.2
  app path     : /Users/victor/.gitmopy
  history      : /Users/victor/.gitmopy/history.json
  config       : /Users/victor/.gitmopy/config.yaml
  custom emojis: /Users/victor/.gitmopy/custom_gitmojis.yaml

Current configuration:
  skip_scope      : False
  skip_message    : False
  capitalize_title: True
  enable_history  : True
  emoji_set       : gitmojiUpdate configuration with$ gitmopy config
$ gitmopy config
❓ Configure gitmopy locally. Use 'space' to (de-)select, 'enter' to validate.
❯ ○ Skip commit scope
  ○ Skip commit message
  ◉ Capitalize commit title
  ◉ Remember commit history for auto-complete and emoji sorting

Config will be saved in /Users/victor/.gitmopy/config.yaml.Get help with$ gitmopy --help

 Usage: gitmopy [OPTIONS] COMMAND [ARGS]...

╭─ Options ───────────────────────────────────────────────────────────────────────────╮
│ --install-completion          Install completion for the current shell.             │
│ --show-completion             Show completion for the current shell, to copy it or  │
│                               customize the installation.                           │
│ --help                        Show this message and exit.                           │
╰─────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────────────╮
│ commit  Commit staged files. Use --add to interactively select files to stage if    │
│         none is already staged                                                      │
│ config  Configure gitmopy                                                           │
│ info    Print gitmopy info                                                          │
╰─────────────────────────────────────────────────────────────────────────────────────╯

$ gitmopy commit --help

 Usage: gitmopy commit [OPTIONS]

 Commit staged files. Use --add to interactively select files to stage if none is
 already staged

╭─ Options ───────────────────────────────────────────────────────────────────────────╮
│ --repo                             TEXT  Path to the git repository [default: .]    │
│ --add           --no-add                 Whether or not to interactively select     │
│                                          files to stage if none is already staged   │
│                                          [default: no-add]                          │
│ --push          --no-push                Whether to `git push` after commit. If     │
│                                          multiple remotes exist, you will be asked  │
│                                          to interactively choose the ones to push   │
│                                          to. Use --remote to skip interactive       │
│                                          selection. Disabled by default.            │
│                                          [default: no-push]                         │
│ --dry           --no-dry                 Whether or not to actually commit.         │
│                                          [default: no-dry]                          │
│ --remote                           TEXT  Remote to push to after commit. Use to     │
│                                          skip interactive remote selection when     │
│                                          several exist. Use several '--remote       │
│                                          {remote name}' to push to multiple remotes │
│ --keep-alive    --no-keep-alive          Whether or not to keep the app alive after │
│                                          commit, to be ready for another one.       │
│                                          [default: no-keep-alive]                   │
│ --help                                   Show this message and exit.                │
╰─────────────────────────────────────────────────────────────────────────────────────╯To DoFeaturesIf requested:Install hookgit commitflags (like-S)max history length (if loading the json becomes slow)Teststyper.tiangolo.com/tutorial/testing/👋Help wantedDocsNot criticalResourcesgitmopyis inspired bygitmoji-cli.It is built thanks to:typerInquirePyGitPython