对于我正在编写的python脚本(在Windows 7上使用Python 2.7)我应该能够使用给定的提交修改分支,即如果提交丢失则添加它(樱桃选择),或者如果提交,则恢复它它已经存在了。
显然revert还没有包含在gitpython的Repo类中,所以我尝试用use Git directly:
repo.git.revert(reference)
其中reference
是repo.iter_commits("master")
脚本会锁定该命令并变为空闲状态;然后我必须杀死命令提示符窗口。
如果我进入工作目录并浏览存储库,我可以看到(使用git diff
)执行后,即使是git log
,也没有新的提交是可见的。 / p>
关于我是否以及我做错了什么的想法?
答案 0 :(得分:0)
我通过手动尝试revert
应用的更改来解决了这个问题。 Git抱怨工作目录中的交换文件。
所以,问题是该命令正在被执行,好像它是从终端运行的,因此等待我以某种方式编辑提交消息!所以我需要使用no-edit
选项运行repo.git.revert(reference.hexsha, no_edit = True)
命令。
我将方法调用更改为:
gitpython
(请注意hexsha
需要下划线作为分隔符。此外,明确使用reference
属性不是必需的,因为str()
将转换为其brew search intl
表示反正。)
似乎有效。