Skip to main content

Interactive Git history management and commit inspection tools with comprehensive diff review

Project description

gitship 🚀

Ship code faster, safer, and smarter.

gitship is the Swiss Army Knife for modern Python development. It transforms the tedious parts of version control—releasing, committing, dependency management, and history inspection—into automated, interactive workflows.

PyPI version License: MIT

✨ Features

⚓ Release Automation (gitship release)

The complete release pipeline in one command.

  • Interactive Versioning: Guided semantic version bumping (patch/minor/major).
  • Smart Changelog: Automatically generates detailed changelogs from git history, grouping features, fixes, and updates.
  • GitHub Releases: Creates draft releases with auto-generated notes for review.
  • PyPI Integration: Checks PyPI status, auto-configures Trusted Publishing (OIDC), and ensures workflows are present.
  • Safety First: Stashes translation/local changes automatically during release.

🧠 Intelligent Commits (gitship commit)

Commit like a pro without the effort.

  • Change Analysis: Scans your changes and categorizes them (Code, Docs, Tests, Config, Translations).
  • Smart Renames: Detects renamed files based on content similarity, even when git misses them.
  • Auto-Message: Suggests conventional commit messages based on file analysis.
  • Diff Review: Interactive diff viewer for staged and unstaged changes.

📦 Dependency Scanner (gitship deps)

Keep your pyproject.toml in sync.

  • Auto-Scan: Parses source code AST to find imports.
  • Smart Update: Adds missing dependencies to pyproject.toml automatically.
  • Filtering: Distinguishes between standard library modules and external packages.
  • Omnipkg Support: Integrates with omnipkg for advanced mapping if available.

🌿 Branch Manager (gitship branch)

Git branching, simplified.

  • Interactive Management: List, create, rename, and delete branches via menu.
  • Cleanup: Identify and delete merged branches.
  • Default Branch: Easily change default branch settings locally and remotely.

☁️ Instant Publishing (gitship publish)

Go from local folder to published repo in seconds.

  • One-Step Setup: Initializes git, creates the GitHub repository (public/private), and pushes code.
  • Identity Verification: Verifies GitHub identity before acting.

🔍 History & Inspection

  • check: View recent commits, see file lists, and inspect changes interactively.
  • review: Generate comprehensive diff reports between any two tags or commits.
  • fix: Selectively restore specific files from past commits (atomic revert for single files).

🚀 Installation

pip install gitship

📖 Usage

Interactive Mode

Run gitship without arguments to enter the interactive menu:

gitship

CLI Commands

Release a new version:

gitship release

Smart commit:

gitship commit

Scan and update dependencies:

gitship deps

Manage branches:

gitship branch

Review history diffs:

gitship review --from v0.1.0 --to HEAD

Restore files from a past commit:

gitship fix <commit-sha>

⚙️ Configuration

gitship stores configuration in ~/.gitship/config.json.

View current settings:

gitship config --show

Set a default export path for reviews:

gitship config --set-export-path ~/code-reviews

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

MIT License. See LICENSE for details.

Project details


Download files

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

Source Distribution

gitship-0.2.5.tar.gz (79.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitship-0.2.5-py3-none-any.whl (81.9 kB view details)

Uploaded Python 3

File details

Details for the file gitship-0.2.5.tar.gz.

File metadata

  • Download URL: gitship-0.2.5.tar.gz
  • Upload date:
  • Size: 79.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitship-0.2.5.tar.gz
Algorithm Hash digest
SHA256 2abf9e2d688c48e701be4e31dc7d79e93ce6b2858317da242428abde41caecc4
MD5 a631a2b4dfbad14dd9c749e15ee532e1
BLAKE2b-256 8aa0617a8bb6ad8f84e5d89ba95f3f73cdb27ebe6f39e7b9de9158217b47220b

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitship-0.2.5.tar.gz:

Publisher: publish.yml on 1minds3t/gitship

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gitship-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: gitship-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 81.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitship-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 17f2030a410335cbd5d47d8c79c366135883009f40a0d2f29c9461ccd289df3d
MD5 fd689bef8166548db80e26ba4ba6f367
BLAKE2b-256 0ff566a29e59dcbcb3640435bb74e0219d26807e0ac6b110b9a9e254fba9b94c

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitship-0.2.5-py3-none-any.whl:

Publisher: publish.yml on 1minds3t/gitship

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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