我正在尝试使用python连接并执行GIT命令,例如pull,检查状态,添加和提交新文件等。
我将python 3.7,PyCharm for IDE和GitPython 2.1.7用作库。我还使用了以下教程:https://www.fullstackpython.com/blog/first-steps-gitpython.html
但是似乎GIT可执行文件有问题。我已经按照教程中的代码执行到T,除非PyCharm会为我这样做,否则请设置环境。
我收到以下错误:
”
引发ImportError(err)
ImportError:错误的git可执行文件。
必须通过以下方式之一指定git可执行文件:
-包含在您的$ PATH
中
-通过$ GIT_PYTHON_GIT_EXECUTABLE
进行设置
-通过git.refresh()显式设置
在解决此问题之前,所有git命令都将出错。
通过设置$ GIT_PYTHON_REFRESH环境变量,以后可以使此初始警告静音或加剧。
使用以下值之一:
-安静| q |静音| s |无| n | 0:无警告或异常
-warn | w | warning | 1:用于打印警告
-error | e | raise | r | 2:引发异常
示例:
出口GIT_PYTHON_REFRESH =安静
“
我已将环境变量“ Path”设置为我的Git \ bin路径,这是由另一个用户在此处询问类似的问题时告知的,但无济于事。
非常感谢您的帮助!
import os
from git import Repo
COMMITS_TO_PRINT = 5
def print_commit(commit):
print('----')
print(str(commit.hexsha))
print("\"{}\" by {} ({})".format(commit.summary,
commit.author.name,
commit.author.email))
print(str(commit.authored_datetime))
print(str("count: {} and size: {}".format(commit.count(),
commit.size)))
def print_repository(repo):
print('Repo description: {}'.format(repo.description))
print('Repo active branch is {}'.format(repo.active_branch))
for remote in repo.remotes:
print('Remote named "{}" with URL "{}"'.format(remote, remote.url))
print('Last commit for repo is {}.'.format(str(repo.head.commit.hexsha)))
if __name__ == "__main__":
repo_path = os.getenv('GIT_REPO_PATH')
# Repo object used to programmatically interact with Git repositories
repo = Repo(repo_path)
# check that the repository loaded correctly
if not repo.bare:
print('Repo at {} successfully loaded.'.format(repo_path))
print_repository(repo)
# create list of commits then print some of them to stdout
commits = list(repo.iter_commits('master'))[:COMMITS_TO_PRINT]
for commit in commits:
print_commit(commit)
pass
else:
print('Could not load repository at {} :('.format(repo_path))