gitpython中git-apply的相当功能

3

是否有一种方法可以仅使用gitpython库来应用补丁(以diff文件的形式)到一个存储库中?

换句话说,是否有与git-apply命令等效的gitpython命令?

2个回答

4
解决方案是执行
r = Repo('path-to-repo')
r.git.execute(['git','apply','patch.diff'])

我之前也尝试过这个,但是在参数列表开头省略了“git”,导致命令不存在报错。


在gitpython中没有直接进行此操作的API吗?我之所以问这个问题,是因为大多数情况下我们会有一个包含差异的字符串。在这种情况下,我们需要先将差异写入文件中,然后运行r.git.execute,最后清理文件。 - Nishant
据我所知,API中没有任何内容。你是否熟悉tempfile?我认为它会让你的情景变得相当轻松。 - chuck1

2
你可以直接使用git,就像这样:

 repo = git.Repo('repository_path') 

 repo.git.apply(['-3', 'patch-file'])

这将执行git命令:
git apply -3 patch-file

请勿直接使用链接,尽量将一些内容粘贴到您的回答中! - m33n

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接