首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有远程的GitPython

带有远程的GitPython
EN

Stack Overflow用户
提问于 2016-03-16 16:40:38
回答 1查看 304关注 0票数 0

我试图用python中的git来解决一个简单的任务。实际上我只想要这样的东西

代码语言:javascript
复制
git clome remote-repo
git pull
edit file
git commit file
git push
rm -rf remote-repo

因此,只需更改一个文件,并提交它,并立即推送它。但是我有我的问题,把我的头转到文档上去吧,http://gitpython.readthedocs.org/en/stable/tutorial.html,这就是我到目前为止所得到的

代码语言:javascript
复制
import git
import shutil
import os

repo_url = 'git@git.internal.server:users/me/mytest'
repo_dir = '/tmp/test/repo'
work_file_name = 'testFile'
work_file = os.path.join(repo_dir, work_file_name)
if os.path.isdir(repo_dir):
   shutil.rmtree(repo_dir)
repo = git.Repo.clone_from(repo_url, repo_dir)

git = repo.git
git.pull()
new_file_path = os.path.join(repo.working_tree_dir, work_file_name)
f = open(new_file_path, 'w')
f.write("just some test")
f.close()
repo.index.commit("test commit")

git.push()
shutil.rmtree(repo_dir)

它实际上创建了一个commit并将其推送到服务器,但是它不包含任何更改,所以我试图编写的文件是空的。知道我错过了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-16 16:54:20

您必须在提交之前分阶段完成文件/更改:

代码语言:javascript
复制
repo.index.add([new_file_path])

另外,请注意:下面的行覆盖您的导入,如果您展开脚本,可能会导致错误:

代码语言:javascript
复制
git = repo.git
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36041774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档