如何使用gitPython进行git reset --hard?

时间:2012-08-08 12:40:41

标签: python git gitpython

标题是自我解释的。使用 GitPython 模块运行git reset --hard(在终端上)的python代码是什么?

3 个答案:

答案 0 :(得分:14)

您可以使用:

repo = git.Repo('c:/SomeRepo')
repo.git.reset('--hard')

或者如果您需要重置为特定分支:

repo.git.reset('--hard','origin/master')

或者在我的情况下,如果你想简单地将回购更新为origin / master(警告,这会破坏你当前的变化):

# blast any current changes
repo.git.reset('--hard')
# ensure master is checked out
repo.heads.master.checkout()
# blast any changes there (only if it wasn't checked out)
repo.git.reset('--hard')
# remove any extra non-tracked files (.pyc, etc)
repo.git.clean('-xdf')
# pull in the changes from from the remote
repo.remotes.origin.pull()

答案 1 :(得分:6)

我在the documentation中搜索了reset,找到了this

  

class git.refs.head.HEAD(repo, path='HEAD')

     

reset(commit='HEAD', index=True, working_tree=False, paths=None, **kwargs)

     

将HEAD重置为给定的提交,可选择同步索引和工作树。我们引用的引用也将设置为commit。

答案 2 :(得分:2)

您可以使用:

repo = git.Repo('repo')
# ...
# Remove last commit
repo.head.reset('HEAD~1', index=True, working_tree=True)