前言
这里我们通过创建一个新的github仓库,来测试我们的脚本能否上传我们本地的项目,并且进行更新。首先你需要先安装 Git,关于这部分我好像没有记录过,这里我搜索看了一下,这篇博客写的Git安装详解应该是比较齐全的,这里我们主要来展示我们的脚本能否上传。
创建测试仓库
框选的部分看一下, 然后我们将创建的项目下载到本地来。
将其解压到本地后,通过pycharm打开,然后将.gitignore,LICENSE,README.md等文件移动到Upload_github(名字叫什么无所谓),然后创建一些代码和文件进行测试。这些就是我们需要上传的内容了。
上传脚本
run_git_command 会运行一个 Git 命令,并捕获其输出。如果命令执行失败(即返回码不为0),则打印错误信息;否则,打印命令的标准输出。
upload_to_github 将指定的本地文件夹上传到 GitHub 仓库。
import os
import subprocessdef run_git_command(command, cwd=None):"""运行 git 命令,并返回输出"""result = subprocess.run(command, cwd=cwd, text=True, capture_output=True)if result.returncode != 0:print(f"Error running command: {command}")print(result.stderr)else:print(result.stdout)def upload_to_github(local_folder, repo_url, commit_message="Initial commit"):"""将文件夹上传到 GitHub 仓库"""# 获取目标文件夹的绝对路径local_folder = os.path.abspath(local_folder)if not os.path.exists(local_folder):print(f"The folder {local_folder} does not exist.")return# 进入目标文件夹os.makedirs(local_folder, exist_ok=True)# 初始化 Git 仓库run_git_command(["git", "init"], cwd=local_folder)# 配置用户信息(如果没有全局配置)run_git_command(["git", "config", "user.name", "Auorui"], cwd=local_folder)run_git_command(["git", "config", "user.email", "2165648225@qq.com"], cwd=local_folder)# 强制将本地分支设置为 mainrun_git_command(["git", "branch", "-M", "main"], cwd=local_folder)# 添加所有文件run_git_command(["git", "add", "."], cwd=local_folder)# 提交更改run_git_command(["git", "commit", "-m", commit_message], cwd=local_folder)# 删除现有的远程 origin(如果存在)run_git_command(["git", "remote", "remove", "origin"], cwd=local_folder)# 设置远程仓库run_git_command(["git", "remote", "add", "origin", repo_url], cwd=local_folder)# 拉取远程仓库的 main 分支,使用 rebase 来避免合并提交run_git_command(["git", "pull", "--rebase", "origin", "main"], cwd=local_folder)# 推送到 GitHub 的 main 分支run_git_command(["git", "push", "-u", "origin", "main"], cwd=local_folder)print(f"Files from {local_folder} have been successfully uploaded to GitHub.")if __name__ == "__main__":# 目标文件夹路径(替换为你的文件夹路径)local_folder = r'D:\PythonProject\Upload-Warehouse-Test-main\Upload_github\myfloder'# 你的 GitHub 仓库 URLrepo_url = "git@github.com:Auorui/Upload-Warehouse-Test.git"# 提交信息(可选)commit_message = "Upload dataset and code"# 调用上传函数upload_to_github(local_folder, repo_url, commit_message)
后面可以将修改的内容直接添加或者替换掉即可。此处只需要修改目标的文件夹路径,和你的github的SSH。
下图为经过测试后,成功添加到指定的仓库中了。