2012-08-08 27 views

Odpowiedz

6

Szukałem reset w the documentation i znalazł this:

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

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

Wyczyść naszej głowie, aby dana popełnić ewentualnie synchronizacji indeksu i drzewa pracy. Odwołanie, do którego odnosimy się, zostanie również ustawione w celu zatwierdzenia.

10

Można użyć:

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

lub jeśli trzeba przywrócić do konkretnego oddziału:

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

lub w moim przypadku, jeśli chcesz po prostu ciężko zaktualizować repo do origin/master (ostrzeżenie, spowoduje to utratę bieżących zmian):

# 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

Y możesz użyć:

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