Skip to main content

git-smartmv - A tool that can decide whether to use git mv or mv

The git-smartmv command-line tool intelligently moves files and directories by selecting either git mv or mv based on the source and destination paths.

  • When both the source and destination are within the same Git repository, git-smartmv uses git mv.
  • When moving files between a Git repository and a non-Git directory, or between different Git repositories, it defaults to mv.

Installation

To install git-smartmv executable locally in ~/.local/bin/pathaction using pip, run:

sudo pip install --user git-smartmv

(Omitting the --user flag will install git-smartmv system-wide in /usr/local/bin/git-smartmv.)

Shell alias

To install the git-smartmv executable locally in ~/.local/bin/git-smartmv using pip, run:

alias mv="git-smartmv"

(Omitting the --user flag will install git-smartmv system-wide in /usr/local/bin/git-smartmv.)

Usage

The git-smartmv command-line tool accepts similar arguments as the mv command, including the source file or directory to be moved, and the destination file or directory.

usage: git-smartmv [--option] <SOURCE>... <DEST>

options:
  -w WARNING_THRESHOLD, --warning-threshold WARNING_THRESHOLD
                        This will raise a warning if the number of files or directories being moved
                        exceeds the specified amount
  -v, --verbose         Report the names of the files and/or directories as they are being moved.
  -f, --force           Force renaming or moving of files and/or directories even if the destination
                        exists.
  -p, --non-interactive
                        Do not prompt the user to confirm before executing 'mv' and/or 'git mv'
                        commands.

First example:

git smartmv file1 file2

Second example:

git smartmv file1 dir1/ file2 file3 directory/

Third example (non-interactive):

git smartmv --non-interactive dir1/ dir2/

License

Copyright (C) 2023-2025 James Cherti

Distributed under terms of the GNU General Public License version 3.

Links

Release files for git-smartmv 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for git-smartmv 1.0.5
File Size Uploaded
git-smartmv-1.0.5.tar.gz 17.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for git-smartmv 1.0.5
File Interpreter ABI Platform
git_smartmv-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 37.1 kB

Release files / git-smartmv-1.0.5.tar.gz

Download URL git-smartmv-1.0.5.tar.gz
Size 17.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4e3079fc98af894fa3e6d6af797b236527fd14cd9fc0da2976c41db0347d1791
BLAKE2b-256 checksum
How to use checksums
7e229cf7fd9b5394ce347ac9bfc3b2be3e200c82f7c907f77aaa05165a9e8a58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.2

Release files / git_smartmv-1.0.5-py3-none-any.whl

Download URL git_smartmv-1.0.5-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
609eac38603141143db9ab938b8a0b2f4c0100159534394eaab30988eea74ab2
BLAKE2b-256 checksum
How to use checksums
8970a412c9328d27c3995f8a18160736800aead2603ad0a9e79ca31ae1ca9846
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.2

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page