{"id":21215038,"url":"https://github.com/jamescherti/git-smartmv","last_synced_at":"2025-07-10T11:31:05.987Z","repository":{"id":161160666,"uuid":"635934080","full_name":"jamescherti/git-smartmv","owner":"jamescherti","description":"A tool that decides to use `git mv` or `mv` to move files/directories.","archived":false,"fork":false,"pushed_at":"2024-06-23T18:17:58.000Z","size":41,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-08T04:09:08.124Z","etag":null,"topics":["command-line","command-line-tool","directories","files","folders","git","git-mv","move","mv"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamescherti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-03T19:15:43.000Z","updated_at":"2024-09-12T01:16:01.000Z","dependencies_parsed_at":"2023-11-11T05:22:22.460Z","dependency_job_id":"d613945a-5d01-4a92-b962-d023c5a63d61","html_url":"https://github.com/jamescherti/git-smartmv","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescherti%2Fgit-smartmv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescherti%2Fgit-smartmv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescherti%2Fgit-smartmv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescherti%2Fgit-smartmv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamescherti","download_url":"https://codeload.github.com/jamescherti/git-smartmv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225633454,"owners_count":17499974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","command-line-tool","directories","files","folders","git","git-mv","move","mv"],"created_at":"2024-11-20T21:33:11.978Z","updated_at":"2025-07-10T11:31:05.982Z","avatar_url":"https://github.com/jamescherti.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# git-smartmv - A tool that can decide whether to use `git mv` or `mv`\n\nThe `git-smartmv` command-line tool intelligently moves files and directories by selecting either `git mv` or `mv` based on the source and destination paths.\n\n- When both the source and destination are within the same Git repository, `git-smartmv` uses `git mv`.\n- When moving files between a Git repository and a non-Git directory, or between different Git repositories, it defaults to `mv`.\n\n## Installation\n\nTo install *git-smartmv* executable locally in `~/.local/bin/pathaction` using [pip](https://pypi.org/project/pip/), run:\n```\nsudo pip install --user git-smartmv\n```\n\n(Omitting the `--user` flag will install *git-smartmv* system-wide in `/usr/local/bin/git-smartmv`.)\n\n## Shell alias\n\nTo install the *git-smartmv* executable locally in `~/.local/bin/git-smartmv` using [pip](https://pypi.org/project/pip/), run:\n```\nalias mv=\"git-smartmv\"\n```\n\n(Omitting the `--user` flag will install *git-smartmv* system-wide in `/usr/local/bin/git-smartmv`.)\n\n## Usage\n\nThe `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.\n```\nusage: git-smartmv [--option] \u003cSOURCE\u003e... \u003cDEST\u003e\n\noptions:\n  -w WARNING_THRESHOLD, --warning-threshold WARNING_THRESHOLD\n                        This will raise a warning if the number of files or directories being moved\n                        exceeds the specified amount\n  -v, --verbose         Report the names of the files and/or directories as they are being moved.\n  -f, --force           Force renaming or moving of files and/or directories even if the destination\n                        exists.\n  -p, --non-interactive\n                        Do not prompt the user to confirm before executing 'mv' and/or 'git mv'\n                        commands.\n```\n\nFirst example:\n```\ngit smartmv file1 file2\n```\n\nSecond example:\n```\ngit smartmv file1 dir1/ file2 file3 directory/\n```\n\nThird example (non-interactive):\n```\ngit smartmv --non-interactive dir1/ dir2/\n```\n\n## License\n\nCopyright (C) 2023-2025 [James Cherti](https://www.jamescherti.com)\n\nDistributed under terms of the GNU General Public License version 3.\n\n## Links\n\n- [Git-smartmv @PyPI](https://pypi.org/project/git-smartmv/)\n- [Git-smartmv @GitHub](https://github.com/jamescherti/git-smartmv/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamescherti%2Fgit-smartmv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamescherti%2Fgit-smartmv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamescherti%2Fgit-smartmv/lists"}