git和python交互_Python操作Git库 `GitPython`

试了一圈发现,git库的用法设置非常符合原生git命令,只不过之间加了个.而已。

比如原本命令行里是git add .,这里就是repo.git.add('.'),

原本是git commit -m "信息",这里就是repo.git.commit(m='信息')

可以说减少了很多学习时间,基本上我很多都是没参考文档自己猜出来的也能用。

sudo pip install gitpython

库安装好后可以直接在python中用了。

创建、识别、克隆仓库

文件夹地址可以是全路径,也可以是.当前文件夹、../上级文件夹等用法。

# 在文件夹里新建一个仓库,如果已存在git仓库也不报错不覆盖没问题

repo = git.Repo.init(path='文件夹地址')

# 选择已有仓库

repo = git.Repo( '仓库地址' )

# 克隆仓库

repo = git.Repo.clone_from(url='git@github.com:USER/REPO.git', to_path='../new')

常用语句:

# 查看repo状态

print repo.git.status() # 返回通常的status几句信息

print repo.is_dirty() # 返回是否有改动(包括未add和未commit的)

# 添加文件 可以是单个文件名,也可以是`[ ]`数组,还可以是`.`代表全部

print repo.git.add( '文件名' )

# commit提交

print repo.git.commit( m='提交信息' )

远程交互操作

# 创建remote:

remote = repo.create_remote(name='gitlab', url='git@gitlab.com:USER/REPO.git')

# 远程交互:

remote = repo.remote()

remote.fetch()

remote.pull()

remote.push()

实验效果

# 原意是返回工作区是否改变的状态

# 但是测试发现,工作区有变动它返回False,没变动却返回True

print repo.is_dirty()

生成tar压缩包

# 压缩到 tar 文件

with open('repo.tar', 'wb') as fp:

repo.archive(fp)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值