diff --git a/devgen/modules/git_ops.py b/devgen/modules/git_ops.py index 455e866..75ea258 100644 --- a/devgen/modules/git_ops.py +++ b/devgen/modules/git_ops.py @@ -105,11 +105,16 @@ class GitOperator: # ------------------------------------------------------------------ actions def stage(self, files: list[str]) -> None: - """``git add`` the given paths.""" + """Stage the given paths — ``git add`` for existing files, ``git rm`` for deleted.""" if not files: return + existing = [f for f in files if Path(self.cwd or ".").joinpath(f).exists()] + deleted = [f for f in files if f not in existing] try: - self._run(["git", "add", *files]) + if existing: + self._run(["git", "add", *existing]) + if deleted: + self._run(["git", "rm", *deleted]) except GitError as e: raise GitError(f"Could not stage files: {e}") from e diff --git a/pyproject.toml b/pyproject.toml index cd38108..abc2c25 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "devgen-cli" -version = "0.2.6" +version = "0.2.7" description = "A collection of developer tools" readme = "README.md" requires-python = ">=3.10" diff --git a/setup.py b/setup.py index 303fddc..435ea89 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ from setuptools import find_packages, setup setup( name="devgen-cli", - version="0.2.6", + version="0.2.7", packages=find_packages(), include_package_data=True, install_requires=[ diff --git a/uv.lock b/uv.lock index 7bf489f..17e75b7 100644 --- a/uv.lock +++ b/uv.lock @@ -180,7 +180,7 @@ wheels = [ [[package]] name = "devgen-cli" -version = "0.2.6" +version = "0.2.7" source = { editable = "." } dependencies = [ { name = "anthropic" },