模仿' git rebase -i'在GitPython中使用reword

时间:2017-10-15 04:39:52

标签: python git gitpython

我正在使用Python脚本在发送代码审查之前重新提交提交消息,以便所有提交都遵循我们团队规定的特定格式(例如" [UserStoryID] [TaskID]一些我的提交的描述")

例如,如果我有3次提交:

a1b2c3   Add documentation
d4e5f6   Implement unit tests
c7b8a9   Add feature X

我想重新/重命名为:

f9e8d7   US123 - TA456 - Add documentation
c6b5a4   US123 - TA456 - Implement unit tests
e3c2a1   US123 - TA456 - Add feature X

使用git rebase -i,可以使用reword选项轻松完成此操作。但是我如何在GitPython中复制这个功能呢?我想到了这些方面的东西,虽然它不是有效的GitPython:

commits = list(repo.iter_commits(max_count=3))
# Reset to the parent commit of the first one we want renamed
repo.head.reference = repo.commit('HEAD~4')
repo.head.reset(index=True, working_tree=True)
# Replay each commit, modifying the message first
for commit in commits[::-1]:
    renamed_commit = commit.clone()
    renamed_commit.message = 'US123 - TA456 - ' + commit.message
    repo.apply(renamed_commit)

0 个答案:

没有答案