Я здесь новенький, поэтому прошу прощения, если здесь не место, чтобы задать этот вопрос. Я пишу сценарий python для своей компании, который просматривает файлы в определенных коммитах и сравнивает их. Ну, я не знаком с git и тем, как работают коммиты, так что, возможно, кто-то более осведомленный, чем я, может помочь. Пока что у меня есть что-то вроде этого:
import git
# Directory for my repo
repo = git.Repo(<repo path>)
# Get the current commit and save it for later use
commit = repo.commit()
< Here is where I search through the current files to get my info >
# Checkout the old commit
repo.git.checkout("HEAD~1", force=True)
< Here is where I search through the old files to get my info >
# Re-checkout the current commit
repo.git.checkout(commit.hexsha, force=True)
< Now I want to be back where I started >
Это работает хорошо и почти выполняет то, что я хочу. Однако ... вся причина этого скрипта - проверять изменения в файлах. Другими словами, разработчик будет работать и изменять многие файлы, чтобы они отличались от последней фиксации. Проблема в том, что когда это снова проверяет новую фиксацию, изменения исчезают (очевидно, это очень расстраивает разработчика). Итак, в целом процесс выглядит примерно так:
--> new_commit on local machine (with changes from developer)
--> old_commit checked out to see what changed
--> new_commit checked back out (as if the developer never worked on it)
В целом, мой вопрос: есть ли способ сохранить этот новый коммит с изменениями, чтобы при повторной проверке он все еще имел изменения? Спасибо за любую помощь!
Изменить: я хочу сохранить незафиксированные / неустановленные изменения в текущей проверенной версии, затем проверить и старую версию и, наконец, вернуть незафиксированные / неустановленные изменения.