bendankill 发表于 2022-8-24 16:09:59

如何用python脚本来远程拉取git代码,并克隆到本地目录?

本帖最后由 bendankill 于 2022-8-29 17:34 编辑

''''''
已经搞定输入账号密码了,但是如何建立远程链接,并且执行拉取代码操作还无从下手,跪求大佬指教。(需要注释!)

【需求】
1,从某个url 拷贝到本地某个位置;(是否需要判断拉取到新内容 或 当前是最新,打印出来)

自学中……
自学中……
自学中……
'''
print('-' *50)


# 如果等到我代码跑起来了,还没人给出方案,就把我的玩具代码贴上来。


print("-------------------------------------------------begin_2022-8-29 17:32:47_玩具代码-------------------------------------------------")
    try:
      # 判断目录是否存在,不存在就克隆,存在就更新。
      # 如果目录存在,就操作git更新;如果不存在,就克隆到本地。

      # 判断是否存在本地目录
      if os.path.exists(GIT_LOCAL_PATH):
            print("目录存在,执行更新")
            # 执行pull同步操作到本地仓库
            repo = git.Repo(GIT_LOCAL_PATH)
            remote = repo.remote()
            remote.pull()
            print("远程仓库同步到本地更新成功!")

      # 不存在本地目录时,就执行克隆
      else:
            # 请输入是否确定克隆到本地目录GIT_LOCAL_PATH

            # 克隆到本地目录
            print("从远程仓库克隆到本地目录...")
            git.Repo.clone_from(url=GIT_REMOTE_URL, to_path=GIT_LOCAL_PATH)

            print("拷贝成功!")
      return True
print("---------------------------------------------------end_2022-8-29 17:32:47_玩具代码-------------------------------------------------")

hrpzcf 发表于 2022-8-24 16:26:32

本帖最后由 hrpzcf 于 2022-8-24 16:31 编辑

subprocess.run(["git","clone", "https://xxxx"])
subprocess.run(["git","pull", "origin", "master"])

临时号 发表于 2022-8-24 16:34:37

import requests

url = "https://github.com/帐户/仓库/archive/refs/heads/main.zip"
response = requests.get(url)
if response.status_code == 200:
        with open("main.zip","wb") as f:
                f.write(response.content)
else:
        print("Faild.")

bendankill 发表于 2022-8-24 17:42:48

临时号 发表于 2022-8-24 16:34


您好,很抱歉我没看懂。。。

我目前搜到的相关知识,都要有个本地地址的。您的这个好像没有,再一个我也不太知道这段代码执行的意义,能否添加一下注释。

抱歉,我纯小白。

bendankill 发表于 2022-8-24 17:44:39

hrpzcf 发表于 2022-8-24 16:26


您好,我这个函数的用法和意义还没学到,看起来挺简单的就两行,但还是没看懂。。。能否帮我注释下,谢谢。

hrpzcf 发表于 2022-8-24 18:38:28

bendankill 发表于 2022-8-24 17:44
您好,我这个函数的用法和意义还没学到,看起来挺简单的就两行,但还是没看懂。。。能否帮我注释下,谢谢 ...

这个是直接运行git命令克隆和拉取代码,需要安装git,回答的时候没注意看可能不符合你的要求

临时号 发表于 2022-8-24 18:44:41

bendankill 发表于 2022-8-24 17:42
您好,很抱歉我没看懂。。。

我目前搜到的相关知识,都要有个本地地址的。您的这个好像没有,再一个我 ...

# 导入urllib模块,用于网络连接
import urllib.request
# 导入zipfile模块,用于解压zip
import zipfile
# 导入os模块,用于删除zip文件
import os

# 爬取github
url = "https://github.com/帐号/仓库/archive/refs/heads/main.zip"
response = urllib.request.urlopen(url)
# 将爬取下来的zip文件保存
with open("main.zip","wb") as f:
        f.write(response.read())

# 解压爬取下来的zip文件
zip_file = zipfile.ZipFile("main.zip")
for i in zip_file.namelist():
        zip_file.extract(i)

# 关闭zip
zip_file.close()
# 删除zip文件
os.remove("main.zip")

bendankill 发表于 2022-9-5 15:21:38

hrpzcf 发表于 2022-8-24 16:26


老哥,我终于找到你的这个方法了,厉害啊
页: [1]
查看完整版本: 如何用python脚本来远程拉取git代码,并克隆到本地目录?