15

さて、タイトルは自明です。GitPythonモジュールgit reset --hardを使用して(ターミナルで)実行するのと同等のPythonコードは何ですか?

4

3 に答える 3

23

次を使用できます。

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

または、特定のブランチにリセットする必要がある場合:

repo.git.reset('--hard','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()
于 2014-06-14T19:20:51.847 に答える
6

はドキュメントresetで検索し、これを見つけまし

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

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

オプションでインデックスと作業ツリーを同期する特定のコミットにHEADをリセットします。参照する参照もコミットするように設定されます。

于 2012-08-08T12:46:23.417 に答える
5

次を使用できます。

repo = git.Repo('repo')
# ...
# Remove last commit
repo.head.reset('HEAD~1', index=True, working_tree=True)
于 2016-11-24T07:05:07.943 に答える