我正在尝试评估远程存储库中是否有更改,我可能需要在某段代码之前提取这些更改
为此,我通过fetch()
将FetchInfo
对象提取到远程原点:
>>> import git
>>> my_repo = git.Repo.init(my_dir)
>>> repo_fetch = my_repo.remotes.origin.fetch()[0]
>>> repo_fetch
<git.remote.FetchInfo object at 0x10192c650>
然而,我无法在the documentation中清楚地看到当有东西要取/拉时与没有东西时的区别
我知道pull()
输出一个str
变量,其中包含Already up to date.
当本地回购是最新的,但我不想拉,我只想取
当我知道远程回购中不存在任何变化时,我发现其属性存在一些差异:
>>> repo_fetch.ref
<git.RemoteReference "refs/remotes/origin/master">
>>> repo_fetch.flags
4
>>> repo_fetch.note
''
>>> repo_fetch.old_commit
>>> repo_fetch.remote_ref_path
'master '
当发生变化时:
>>> repo_fetch.ref
<git.RemoteReference "refs/remotes/origin/master">
>>> repo_fetch.flags
64
>>> repo_fetch.note
''
>>> repo_fetch.old_commit
<git.Commit "[some_string]">
>>> repo_fetch.remote_ref_path
' '
关键是
flags
属性,在the documentation中不是非常直观或清晰地显示:就问题而言,只要标志不等于
4
(HEAD_UPTODATE
),我就需要采取不同于本地和远程存储库相同的操作相关问题 更多 >
编程相关推荐