[英]How do I revert a commit with gitpython?
对于我正在编写的python脚本(在Windows 7上使用Python 2.7),我应该能够使用给定的提交修改分支,如果缺少提交,则将其添加(樱桃选择),如果已经存在,则将其还原。
显然,revert尚未包装在gitpython的Repo类中,因此我尝试将Git直接用于以下内容:
repo.git.revert(reference)
其中reference
是repo.iter_commits("master")
返回的提交之一
发生的事情是脚本锁定了该命令并变为空闲状态。 然后,我必须杀死命令提示符窗口。 如果我进入工作目录并浏览存储库,我可以看到(使用git diff
)执行后,即使我使用git log
即使没有新提交,更改也已应用。
关于我是否做错什么的任何想法?
我通过尝试手动git commit
应用的更改来解决问题。 Git抱怨工作目录中的交换文件。
因此,问题在于命令的执行就像从终端运行一样,因此等我以某种方式编辑提交消息! 因此,我需要使用no-edit
选项运行revert
命令。
我将方法调用更改为:
repo.git.revert(reference.hexsha, no_edit = True)
(请注意, gitpython
需要使用下划线作为分隔符。此外,不需要显式使用hexsha
属性,因为无论如何reference
都将转换为其str()
表示形式。)
似乎有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.