Skip to content

Instantly share code, notes, and snippets.

@marskar
Last active April 21, 2019 15:02
Show Gist options
  • Save marskar/d3654aa5bd49ac96130e8c78918d9409 to your computer and use it in GitHub Desktop.
Save marskar/d3654aa5bd49ac96130e8c78918d9409 to your computer and use it in GitHub Desktop.
ACMP stands for git add && git commit --message && git push
import git
repo = git.Repo()
untracked = repo.untracked_files
changed_file_lists = [
[file.a_path
for file in repo.index.diff(None).iter_change_type(change_type)]
for change_type in ('D', 'M')
]
if any(untracked + changed_file_lists):
repo.git.add(untracked + changed_file_lists)
new = f"New files: {', '.join(untracked)}. " if untracked else ""
prefixes = "Deleted files:", "Modified files:"
deleted, modified = (
f"{prefix} {', '.join(changed_files)}. " if changed_files else ""
for prefix, changed_files in zip(prefixes, changed_file_lists)
)
print(repo.git.commit(untracked + changed_file_lists,
message=new + deleted + modified),
repo.git.push())
else:
print("There are no new, deleted, or modified files.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment