我正在使用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)