Я пишу большую программу с gitpython. Я борюсь с некоторыми аспектами его API, поэтому я решил повторить git status
, с этим у меня должно быть достаточно знаний о API, чтобы сделать то, что мне нужно.
Чтобы дублировать это
On branch D3CSMerge
Your branch is up to date with 'origin/D3CSMerge'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: MyappApi/Startup.cs
modified: MyappApiApi/MyappApi.csproj
deleted: MyappApiSvc.sln
Untracked files:
(use "git add <file>..." to include in what will be committed)
test
Пока у меня есть
local_repo_folder = master_config.get_local_repo_path(project_definition)
print(local_repo_folder)
repo = Repo(local_repo_folder)
if repo.is_dirty():
print("Branch - " + str(repo.head.ref))
print(repo.index.diff(repo.head.commit))
for item in repo.index.diff(None):
print(item.change_type + " - " + item.a_path)
for item in repo.untracked_files:
print("U - " + item)
, который печатает это
/root/source/repos/MyappSvc
Branch - D3CSMerge
[]
M - MyappApi/Startup.cs
M - MyappApi/MyappApi.csproj
D - MyappSvc.sln
U - test
В настоящее время я не могу понять, как повторить строку Your branch is up to date with 'origin/D3CSMerge'.
.
проблемы
- Я не могу понять, как получить справочное имя
origin/D3CSMerge
из головного объекта - Мне нужно сравнить это с удаленным, чтобы определить, синхронизирован ли мой локальный c с пультом
- Что на самом деле печатает строка
print(repo.index.diff(repo.head.commit))
? Я не могу понять, что это за список на самом деле.