如何使用Python脚本将本地项目上传到 GitHub

embedded/2025/1/23 1:24:28/

前言

这里我们通过创建一个新的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。

下图为经过测试后,成功添加到指定的仓库中了。 


http://www.ppmy.cn/embedded/156202.html

相关文章

macOS查看当前项目的 tree 结构

文章目录 使用 tree 命令 macOS 系统默认不包含 tree 命令 使用 tree 命令 使用homebrew自动安装脚本/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装 tree:brew install tree查看项目的 tree 结构&#…

实现星海波动粒子特效:基于 Canvas 和 JavaScript 的 3D 波动效果

1,前言 近年来,Web 动效和图形呈现技术的不断进步,使得许多动态效果可以通过浏览器轻松呈现。在这篇文章中,我将介绍如何实现一个美丽的 “星海波动” 3D 粒子特效,利用 Canvas 和 JavaScript 绘制出一个带有波动效果的粒子阵列。此特效呈现的是一个平面波的运动,粒子沿…

如何通过云计算优化网站性能?

随着互联网的迅猛发展,网站的性能已经成为用户体验的关键因素之一。响应速度慢、加载时间长,甚至服务器崩溃都会直接影响用户的满意度,进而影响企业的品牌形象和盈利能力。而云计算提供了一个高效、灵活、可扩展的解决方案,帮助企…

html转义符+h5提供的新标签

html转义符 h5提供的新标签 HTML5是HTML从传统的web端开始兼容移动互联网的重要标志,h5为HTML提供了大量好用的标签,如布局使用的三个标签header、section、footer标签;用来播放视频和音频的多媒体标签video、audio标签等,参考表…

2025年国产化推进.NET跨平台应用框架推荐

2025年国产化推进.NET跨平台应用框架推荐 1. .NET MAUI NET MAUI是一个开源、免费(MIT License)的跨平台框架(支持Android、iOS、macOS 和 Windows多平台运行),是 Xamarin.Forms 的进化版,从移动场景扩展到…

什么是报文的大端和小端,有没有什么记忆口诀?

在计算机科学中,**大端(Big-Endian)和小端(Little-Endian)**是两种不同的字节序(即多字节数据在内存中的存储顺序)。理解这两种字节序对于网络通信、文件格式解析以及跨平台编程等非常重要。 1…

EasyExcel的应用

一、简单使用 引入依赖: 这里我们可以使用最新的4.0.2版本,也可以选择之前的稳定版本,3.1.x以后的版本API大致相同,新的版本也会向前兼容(3.1.x之前的版本,部分API可能在高版本被废弃)&…

Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正

Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正 1 添加依赖2 测试代码3 测试结果 在OpenCV中,仿射变换(Affine Transformation)和透视变换(Perspective Transformation)是两种常用的图像几何变换方法。 变换方…