如何上传代码到github仓库

一、前期准备

  1. 安装并配置 Git(必做)
    安装 Git:
    Windows:下载 Git for Windows,一路默认安装即可(记得勾选 "Git Bash Here" 方便右键打开命令行)。
    macOS:打开终端执行 brew install git(需先装 Homebrew),或直接下载安装包。
    Linux:执行 sudo apt install git(Debian/Ubuntu)或 sudo yum install git(CentOS)。
    验证安装:打开终端 / Git Bash,输入 git --version,能显示版本号即安装成功。
    配置 Git 身份(必须和 GitHub 账号一致):
    bash
    运行

替换成你的GitHub用户名

git config --global user.name "你的GitHub用户名"

替换成你的GitHub绑定邮箱

git config --global user.email "你的GitHub邮箱@xxx.com"

  1. 在 GitHub 创建空仓库

登录 GitHub,点击右上角 "+" 号 → 选择 "New repository"。

填写仓库信息:

Repository name:仓库名(建议和本地项目名一致)。

Description(可选):仓库描述,比如 "我的第一个 Python 项目"。

Visibility:选择公开(Public)或私有(Private)。

不要勾选 "Add a README file"(避免和本地项目冲突)。

点击 "Create repository",此时会进入仓库空页面,复制页面上的仓库地址(HTTPS 或 SSH 都可以,新手推荐先选 HTTPS)。

二、本地推送项目到 GitHub(核心步骤)

打开 Git Bash(Windows)或终端(macOS/Linux),按以下步骤执行:

  1. 进入本地项目目录
    bash
    运行

替换成你的项目本地路径,比如 cd /Users/xxx/Desktop/my-project

cd 你的本地项目绝对路径

  1. 初始化 Git 仓库(首次上传必做)

bash

运行

git init

作用:在项目目录下创建.git 隐藏文件夹,标记该目录为 Git 可管理的仓库。

  1. 将项目文件添加到暂存区

bash

运行

添加所有文件(推荐)

git add .

若只想添加单个文件,比如 git add main.py

注意:如果有不想上传的文件(比如依赖包、日志),可以创建.gitignore文件,写入忽略规则(比如venv/、*.log)。

  1. 提交文件到本地仓库

bash

运行

替换备注信息,比如 "首次提交:完成项目基础功能"

git commit -m "你的提交备注"

作用:将暂存区的文件正式提交到本地 Git 仓库,备注信息用于记录本次提交的内容,方便后续追溯。

  1. 关联远程 GitHub 仓库

bash

运行

替换成你复制的仓库地址,比如 git remote add origin https://github.com/你的用户名/仓库名.git

git remote add origin 你的GitHub仓库地址

作用:将本地仓库和远程 GitHub 仓库建立关联,origin是远程仓库的默认别名。

  1. 推送代码到 GitHub

bash

运行

首次推送用这个命令(绑定默认分支)

git push -u origin main

后续推送可简化为 git push

注意:如果 GitHub 提示分支名是master而非main,则替换为 git push -u origin master。

身份验证:

若用 HTTPS 地址,会弹出窗口要求输入 GitHub 用户名和密码(2021 年后 GitHub 不再支持密码登录,需用 Personal Access Token 替代密码,生成方法见文末)。

若用 SSH 地址,需先配置 SSH 密钥(适合频繁推送的场景,文末附简易步骤)。

三、常见问题解决

  1. 推送失败:"fatal: remote origin already exists"
    原因:本地已关联过其他远程仓库。
    解决:先删除原有关联,再重新关联:
    bash
    运行
    git remote rm origin
    git remote add origin 你的GitHub仓库地址
  2. 推送失败:"failed to push some refs to..."
    原因:远程仓库有默认文件(比如你误勾选了 README),和本地仓库冲突。
    解决:先拉取远程文件并合并,再推送:
    bash
    运行
    git pull --rebase origin main
    git push -u origin main
  3. 生成 Personal Access Token(HTTPS 登录用)
    GitHub 主页 → 右上角头像 → Settings → Developer settings → Personal access tokens → Tokens (classic)。
    点击 "Generate new token (classic)",填写备注、过期时间,勾选 "repo" 权限,点击生成。
    复制生成的 Token(只显示一次),推送代码时,密码框输入这个 Token 即可。
  4. 配置 SSH 密钥(免密登录,推荐)
    bash
    运行

1. 生成SSH密钥(一路回车,无需设置密码)

ssh-keygen -t ed25519 -C "你的GitHub邮箱"

2. 复制公钥内容

Windows:cat ~/.ssh/id_ed25519.pub

macOS/Linux:pbcopy < ~/.ssh/id_ed25519.pub

3. GitHub主页 → Settings → SSH and GPG keys → New SSH key,粘贴公钥并保存。

总结

上传项目核心流程:GitHub 创建空仓库 → 本地初始化 Git → 提交文件 → 关联远程仓库 → 推送代码。

身份验证优先选 SSH(免密),HTTPS 需用 Personal Access Token 替代密码。

推送失败大概率是分支冲突或远程仓库已存在文件,用git pull --rebase合并即可。

相关推荐
有道AI情报局12 小时前
网易有道龙虾 NAS 服务器部署与实战指南
github
徐小夕13 小时前
JitWord 2.3: 墨定,行远
前端·vue.js·github
CoovallyAIHub16 小时前
实时视觉AI智能体框架来了!Vision Agents 狂揽7K Star,延迟低至30ms,YOLO+Gemini实时联动!
算法·架构·github
CoovallyAIHub16 小时前
开源:YOLO最强对手?D-FINE目标检测与实例分割框架深度解析
人工智能·算法·github
ZengLiangYi16 小时前
写了个脚本,把 Gitee/GitLab 仓库一键批量迁移到 GitHub
github
CoovallyAIHub16 小时前
OpenClaw:从“19万星标”到“行业封杀”,这只“赛博龙虾”究竟触动了谁的神经?
算法·架构·github
徐小夕18 小时前
pxcharts Ultra V2.3更新:多维表一键导出 PDF,渲染兼容性拉满!
vue.js·算法·github
开源之眼19 小时前
《github star 加星 Taimili.com 艾米莉 》为什么Java里面,Service 层不直接返回 Result 对象?
java·后端·github
逛逛GitHub20 小时前
OpenClaw之父多次点名!国产 Agent 进入真干活时代。
github
郭钊荣20 小时前
为什么 OpenClaw 能出圈:扒一扒小龙虾的agent系统设计
后端·github