小白入门:手把手教你把本地代码推送到 GitHub(完整流程)

大家在学习 Linux 或 Python 开发时,经常会遇到一个问题:如何把本地写好的代码上传到 GitHub,方便备份和分享?今天就给大家带来一套超简单的完整流程,每一步代码都有详细讲解,零基础也能轻松学会!

一、 前期准备

  1. 已安装 Git(Ubuntu 系统可通过 sudo apt install git -y 安装)
  2. 拥有 GitHub 账号,并新建了一个空仓库(本文以 https://github.com/user_name/仓库名字.git 为例)
  3. 本地已有需要上传的项目代码(本文以 DB-GPT-Hub 项目为例)

二、 完整操作流程(逐句代码讲解)

步骤 1:激活项目环境(可选,针对 Conda 环境项目)

bash

运行

复制代码
conda activate 环境名字

代码讲解

  • 这是针对使用 Conda 管理环境的项目,环境名字 是你的环境名称
  • 作用:激活项目对应的 Python 环境,确保后续操作在正确的环境中进行(非 Conda 项目可跳过此步骤)
  • 执行后终端提示符前会出现 (环境名字),表示环境激活成功

步骤 2:进入本地项目目录

bash

运行

复制代码
cd ~/项目名字

代码讲解

  • cd:Linux 系统中切换目录的核心命令
  • ~/项目名字:你的本地项目绝对路径(~ 代表当前用户的主目录)
  • 作用:进入需要上传的项目文件夹,后续所有 Git 操作都在该目录下执行

步骤 3:配置 Git 全局用户信息(关键!避免提交报错)

bash

运行

复制代码
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

代码讲解

  1. 第一句 git config --global user.name "Your Name"

    • git config:Git 的配置命令,用于设置 Git 的各种参数
    • --global:全局参数,表示该配置对当前用户的所有 Git 仓库生效(无需每个仓库单独配置)
    • user.name:配置 Git 的提交者姓名
    • "Your Name":替换为你的自定义姓名(如 "Z666"),必须用英文引号包裹
  2. 第二句 git config --global user.email "you@example.com"

    • user.email:配置 Git 的提交者邮箱
    • "you@example.com":替换为你的 GitHub 注册邮箱(必须一致,否则 GitHub 无法识别你的提交)
    • 作用:Git 每次提交代码时,都会记录提交者的姓名和邮箱,这是 Git 的必要配置,不配置会导致后续 git commit 报错

步骤 4:初始化本地 Git 仓库

bash

运行

复制代码
git init

代码讲解

  • git init:初始化本地仓库的核心命令
  • 作用:在当前项目目录下创建一个隐藏的 .git 文件夹,该文件夹用于存储 Git 的版本控制信息(如提交记录、分支信息等)
  • 执行后提示 Initialized empty Git repository in /home/你的文件路径/.git/,表示本地仓库初始化成功

步骤 5:暂存本地所有文件

bash

运行

复制代码
git add .

代码讲解

  • git add:Git 的暂存命令,用于将文件添加到 Git 的暂存区(相当于 "待提交缓冲区")
  • .:通配符,表示当前目录下的所有文件和文件夹(包括子目录)
  • 作用:把项目中所有修改过的、新增的文件都暂存起来,为后续提交做准备
  • 注意:执行后可能会出现嵌套仓库警告(如本文中的 my-db 仓库警告),不影响基础提交,新手可暂时忽略

步骤 6:提交暂存区文件到本地仓库

bash

运行

复制代码
git commit -m "Initial commit"

代码讲解

  • git commit:Git 的提交命令,用于将暂存区的文件提交到本地 Git 仓库
  • -m:指定提交备注的参数,必须跟在 git commit 后面
  • "Initial commit":提交备注信息,用于描述本次提交的内容(如 "初始化项目""修复某个 bug" 等),方便后续查看提交历史
  • 执行后会显示提交信息(如文件变更数量、插入代码行数等),表示本地提交成功
  • 核心作用:生成一个本地的代码版本记录,这是代码上传到远程仓库的前提

步骤 7:关联远程 GitHub 仓库

bash

运行

复制代码
git remote add origin https://github.com/github账户名字/仓库名字.git

代码讲解

  • git remote add:添加远程仓库关联的命令
  • origin:远程仓库的默认别名(Git 的通用约定,可自定义,但不建议修改)
  • 例如https://github.com/Z666/db.git:替换为你的 GitHub 空仓库地址(可从 GitHub 仓库页面复制,支持 HTTPS 和 SSH 两种格式)
  • 作用:建立本地仓库与远程 GitHub 仓库的关联,告诉 Git 后续要把代码推送到哪个远程仓库

步骤 8:创建并切换到 main 分支(Git 默认主分支)

bash

运行

复制代码
git checkout -b main

代码讲解

  • git checkout:Git 的分支切换命令
  • -b:新建分支并切换的参数(相当于 git branch main + git checkout main 两步操作的合并)
  • main:当前 Git 的默认主分支名称(早期为 master,现在主流平台已改为 main
  • 作用:创建项目的主分支,并切换到该分支,后续代码都在主分支上推送和维护
  • 执行后提示 Switched to a new branch 'main',表示分支创建并切换成功

步骤 9:再次提交(可选,针对无新修改的情况)

bash

运行

复制代码
git commit -m "Initial commit"

代码讲解

  • 由于上一步已经执行过 git commit,本地工作区没有新的修改,因此执行后会提示 nothing to commit, working tree clean(无内容可提交,工作区干净)
  • 作用:再次确认本地提交状态,确保所有需要上传的文件都已提交到本地仓库(无新修改时可跳过此步骤)

步骤 10:推送本地代码到 GitHub 远程仓库

bash

运行

复制代码
git push -u origin main

代码讲解

  • git push:Git 的推送命令,用于将本地仓库的代码推送到远程仓库
  • -u:全称 --set-upstream,核心作用是建立本地 main 分支与远程 origin/main 分支的关联
  • origin:远程仓库的别名(对应步骤 7 中配置的远程仓库)
  • main:要推送的本地分支名称(对应步骤 8 中创建的主分支)

三、 验证推送结果

推送成功后,打开你的 GitHub 仓库页面(如 https://github.com/Z6666/db.git),即可看到本地的 DB-GPT-Hub 项目代码已经成功上传,所有文件和目录都完整显示。

四、 新手常见问题总结

  1. 忘记配置用户信息:执行 git commit 时会报错,只需补充步骤 3 的配置即可
  2. 远程仓库地址错误:执行 git push 时会报错,可通过 git remote rm origin 删除错误关联,再重新执行步骤 7
  3. 推送时提示权限不足:HTTPS 格式仓库会提示输入 GitHub 账号密码,SSH 格式仓库需提前配置 SSH 密钥

五、 总结

本文的核心流程可归纳为:

  1. 配置 Git 用户信息(关键前置步骤)
  2. 本地仓库初始化 + 暂存 + 提交
  3. 关联远程仓库 + 创建分支
  4. 推送本地代码到 GitHub

所有代码都已详细讲解,新手只需按步骤替换自己的项目路径、用户名、邮箱和仓库地址,即可轻松完成本地代码上传到 GitHub 的操作,赶紧动手试试吧!

相关推荐
易晨 微盛·企微管家2 小时前
2026企业微信AI智能客户管理指南:3步落地+行业案例
大数据·人工智能
HIT_Weston2 小时前
108、【Ubuntu】【Hugo】搭建私人博客:搜索引擎
linux·ubuntu·搜索引擎
热忱11282 小时前
Git 全套常用命令手册(含日常开发示例)
大数据·git·elasticsearch·搜索引擎
Gofarlic_OMS2 小时前
Fluent许可证使用合规性报告自动化生成系统
java·大数据·运维·人工智能·算法·matlab·自动化
AI营销前沿2 小时前
原圈科技AI营销内容:SaaS案例创作告别低效,效率翻倍
大数据·人工智能
币之互联万物2 小时前
消费品营销战略咨询公司怎么选?哪家靠谱?
大数据·人工智能
Hello.Reader2 小时前
Flink Hive 把 Hive 表变成“可流式消费”的数仓底座
大数据·hive·flink
2501_948120152 小时前
大数据背景下推动XX旅游发展的分析与研究
大数据·旅游
sld1684 小时前
农资行业B2B多租户商城系统推荐,适配农业经销商层级管理
大数据·人工智能