当前位置: 首页 > news >正文

Git 本地项目上传 GitHub 全指南(SSH Token 两种上传方式详细讲解)

前言:Git 与 GitHub 的区别与联系

在学习如何将本地项目上传到 GitHub 之前,先来弄清楚 GitGitHub 的区别以及它们之间的联系。

对比项GitGitHub
定义分布式版本控制系统(DVCS),用于本地和远程管理代码版本托管 Git 仓库的在线平台
作用负责代码的版本管理,包括提交、回滚、分支管理等允许用户在云端存储、协作和管理 Git 仓库
使用方式在本地安装并使用 Git 命令行或 GUI 进行代码管理通过浏览器或 Git 连接远程仓库,进行托管和协作
是否需要联网不需要,可在本地使用需要联网,用于远程仓库管理
是否依赖 GitHub不依赖,Git 可独立使用依赖 Git,GitHub 是基于 Git 构建的

Git 是一个本地的版本控制工具,而 GitHub 是一个在线代码托管平台,GitHub 依赖 Git 进行版本控制,Git 也可以在本地独立使用,但通常两者结合使用以便于代码同步、协作和备份

开始前,你需要:

  1. 安装 Git:未安装请参考我的另一篇教程 👉 手把手教你如何在Windows上安装Git并连接GitHub

  2. 注册 GitHub 账号:GitHub 官网


一、创建 GitHub 仓库

  1. 登录 GitHub 官网。

  2. 点击右上角的 +,选择 New repository(新建仓库)。

    在这里插入图片描述

  3. 填写 仓库名称(Repository name),可选填写 描述(Description)。

  4. 选择仓库可见性:

    • Public(公开):所有人都能看到该仓库。
    • Private(私有):只有你和你授权的用户能访问。
  5. 不要勾选 Initialize this repository with a README,否则后续 git push 可能会遇到冲突。

在这里插入图片描述

本图出自 Github如何上传项目(超详细小白教程) 四、Github的上传:第二步

  1. 点击 Create repository 创建仓库。

    在这里插入图片描述


二、本地项目上传至 GitHub(方法一:使用 SSH 认证 | 推荐)

1. 生成 SSH 密钥

在 Git Bash 终端输入以下命令(替换 your-email@example.com 为你的 GitHub 邮箱):

ssh-keygen -t rsa -b 4096 -C "your-email@example.com"

提示:执行后会提示你输入文件保存路径,直接回车即可(默认~/.ssh/id_rsa)。然后会要求你输入密码,可直接回车跳过,接着会要求你再次输入密码进行确认,再次回车跳过即可。

2. 添加 SSH Key 到 GitHub

  1. 运行以下命令复制 SSH Key:

    cat ~/.ssh/id_rsa.pub
    
  2. 复制输出的 SSH Key,并进入 GitHub SSH Key 管理页面,点击 New SSH Key

    在这里插入图片描述

  3. 填写相关信息,如下图,最后点击 Add SSH key(添加 SSH 密钥)。

    在这里插入图片描述

  4. 填写 GitHub账号 密码,点击 Confirm

    在这里插入图片描述

3. 在本地初始化 Git 仓库

如果你的项目文件夹还未初始化 Git 仓库,可以执行以下命令:

cd /path/to/your/project  # 进入你的项目目录
git init  # 初始化 Git 仓库

这样,Git 就会在当前目录创建一个 .git 文件夹,代表该目录已成为一个 Git 仓库。

在这里插入图片描述

4. 关联远程仓库

在 GitHub 创建仓库后,会看到类似以下的 git remote add 命令,请复制并在终端执行(替换为你的 GitHub 仓库地址):

git remote add origin git@github.com:your-username/your-repository.git

在这里插入图片描述

可以用以下命令检查远程仓库是否添加成功:

git remote -v

如果返回 origin 及对应的 GitHub 地址,则说明添加成功。

在这里插入图片描述

5. 添加、提交和推送代码

  1. 添加所有文件到 Git 版本控制,执行以下命令:

    git add .
    # 或者添加特定文件,例如:
    git add main.py
    
  2. 提交代码,提交时需附带说明信息:

    git commit -m "初次提交代码"
    
  3. 确认推送分支,首次推送时,需要设置 mainmaster 分支:

    # 确保主分支是 main(如果你的 GitHub 仓库默认是 master 则将 main 改为 master)
    git branch -M main  
    
  4. 推送代码到指定分支:

    git push -u origin main
    

    在这里插入图片描述

  5. 代码已成功推送至 GitHub 仓库,您可以前往 GitHub 仓库页面查看。


三、本地项目上传至 GitHub(方法二:使用 Token 认证)

1. 生成 Personal Access Token (PAT)

  1. 进入 GitHub 个人访问令牌管理页面,点击 Generate new token

    在这里插入图片描述

  2. 填写相关信息,如下图。

    在这里插入图片描述

  3. 点击 Generate token 生成 Token

    在这里插入图片描述

  4. 复制个人访问令牌并保存好,下面会用到。

    在这里插入图片描述

2. 在本地初始化 Git 仓库

如果你的项目文件夹还未初始化 Git 仓库,可以执行以下命令:

cd /path/to/your/project  # 进入你的项目目录
git init  # 初始化 Git 仓库

这样,Git 就会在当前目录创建一个 .git 文件夹,代表该目录已成为一个 Git 仓库。

在这里插入图片描述

3. 关联远程仓库

在 GitHub 创建仓库后,会看到类似以下的 git remote add 命令,请复制并在终端执行(替换为你的 GitHub 仓库地址):

git remote add origin https://github.com/your-username/your-repository.git

在这里插入图片描述

可以用以下命令检查远程仓库是否添加成功:

git remote -v

如果返回 origin 及对应的 GitHub 地址,则说明添加成功。

在这里插入图片描述

4. 添加、提交和推送代码

  1. 添加所有文件到 Git 版本控制,执行以下命令:

    git add .
    # 或者添加特定文件,例如:
    git add main.py
    
  2. 提交代码,提交时需附带说明信息:

    git commit -m "初次提交代码"
    
  3. 确认推送分支,首次推送时,需要设置 mainmaster 分支:

    # 确保主分支是 main(如果你的 GitHub 仓库默认是 master 则将 main 改为 master)
    git branch -M main  
    
  4. 推送代码到指定分支:

    git push -u origin main
    
  5. 输入刚才复制的 Token,点击 Sign in

    在这里插入图片描述

  6. 代码已成功推送至 GitHub 仓库,您可以前往 GitHub 仓库页面查看。


结语:Git 上传 GitHub 的更多实用操作

恭喜您!现在您已经掌握了如何使用 SSH 认证Token 认证 将本地项目上传到 GitHub 🎉。在实际开发中,我们还需要掌握一些常见的 Git 命令,以提高 Git 版本控制的效率。

🎯 Git 常用命令总结

操作命令
删除 .git 目录(重置仓库)Remove-Item -Recurse -Force .git (Windows) / rm -rf .git (Linux/macOS)
强制推送(覆盖远程)git push --force
初始化 Git 仓库git init
添加远程仓库git remote add origin <仓库地址>
克隆仓库git clone <仓库地址>
查看当前状态git status
查看提交历史git log --oneline --graph --decorate --all
添加文件到暂存区git add .
提交代码git commit -m "提交信息"
推送代码到远程仓库git push -u origin main
拉取远程最新代码git pull origin main
创建新分支git checkout -b new-branch
切换分支git checkout branch-name
合并分支git merge branch-name
删除本地分支git branch -d branch-name
删除远程分支git push origin --delete branch-name
撤销 git addgit reset HEAD file.txt
撤销最近一次提交(保留更改)git reset HEAD~1
撤销最近一次提交(删除更改)git reset --hard HEAD~1

现在,您已经完全掌握了 Git 基本操作,并能顺利将代码上传到 GitHub!希望这篇教程能帮助您更好地使用 Git 进行版本控制,祝您编码愉快 🚀!

相关文章:

Git 本地项目上传 GitHub 全指南(SSH Token 两种上传方式详细讲解)

前言&#xff1a;Git 与 GitHub 的区别与联系 在学习如何将本地项目上传到 GitHub 之前&#xff0c;先来弄清楚 Git 和 GitHub 的区别以及它们之间的联系。 对比项GitGitHub定义分布式版本控制系统&#xff08;DVCS&#xff09;&#xff0c;用于本地和远程管理代码版本托管 G…...

jenkins服务启动-排错

服务状态为active (exited) 且进程不在 查看/etc/rc.d/init.d/jenkins配置 获取配置参数 [rootfy-jenkins-prod jenkins]# cat /etc/rc.d/init.d/jenkins | grep -v #JENKINS_WAR"/usr/lib/jenkins/jenkins.war" test -r "$JENKINS_WAR" || { echo "…...

CF 144A.Arrival of the General(Java实现)

题目分析 一个n个身高数据&#xff0c;问最高的到最前面&#xff0c;最矮的到最后面的最短交换次数 思路分析 首先&#xff0c;如果数据有重复项&#xff0c;例如示例二中&#xff0c;最矮的数据就是最后一个出现的数据位置&#xff0c;最高的数据就是最先出现的数据位置&…...

SAP-ABAP:SAP中REPORT程序和online程序的区别对比

在SAP中&#xff0c;REPORT程序和Online程序&#xff08;通常指Dialog程序&#xff09;是两种常见的ABAP程序类型&#xff0c;它们在用途、结构和用户交互方式上有显著区别。以下是它们的详细对比&#xff1a; 1. 用途 REPORT程序Online程序主要用于数据查询、报表生成和批量数…...

Java发展史

JavaEE的由来 语言的诞生 Java的前身是Oak语言&#xff0c;其目的是搞嵌入式开发开发智能面包机 叮~~~&#x1f35e;&#x1f35e;&#x1f35e; 产品以失败告终 巅峰 网景公司需要网景浏览器打开网页&#xff0c;Oak->Java&#xff0c;进行前端开发&#xff08;相关技…...

vue3--SVG图标的封装与使用

流程 终端输入- -安装下面这个包 npm install vite-plugin-svg-icons -Dvite.config.ts文件中引入 import {createSvgIconsPlugin} from vite-plugin-svg-iconsvite.config.ts文件中配置plugins选项 将下面代码 createSvgIconsPlugin({//用于指定包含 SVG 图标的文件夹路径…...

Datawhale Ollama教程笔记3

小白的看课思路&#xff1a; Ollama REST API 是什么&#xff1f; 想象一下&#xff0c;你有一个智能的“盒子”&#xff08;Ollama&#xff09;&#xff0c;里面装了很多聪明的“小助手”&#xff08;语言模型&#xff09;。如果你想让这些“小助手”帮你完成一些任务&#…...

学习数据结构(10)栈和队列下+二叉树(堆)上

1.关于栈和队列的算法题 &#xff08;1&#xff09;用队列实现栈 解法一&#xff1a;&#xff08;参考代码&#xff09; 题目要求实现六个函数&#xff0c;分别是栈初始化&#xff0c;入栈&#xff0c;移除并返回栈顶元素&#xff0c;返回栈顶元素&#xff0c;判空&#xff0…...

洛谷 P3660 USACO17FEB Why Did the Cow Cross the Road III 题解

题意 有一个圆&#xff0c;圆周上按顺时针方向给出 2 n 2n 2n个点。第 i i i个点的颜色是 c o l o r i color_i colori​&#xff0c;其中数据保证 1 ≤ c o l o r i ≤ n 1\le color_i\le n 1≤colori​≤n&#xff0c;而且每种不同的颜色有且只有两个点。不存在位置重叠的点…...

【数据结构】(9) 优先级队列(堆)

一、优先级队列 优先级队列不同于队列&#xff0c;队列是先进先出&#xff0c;优先级队列是优先级最高的先出。一般有两种操作&#xff1a;返回最高优先级对象&#xff0c;添加一个新对象。 二、堆 2.1、什么是堆 堆也是一种数据结构&#xff0c;是一棵完全二叉树&#xff0c…...

如何提升爬虫获取数据的准确性?

提升爬虫获取数据的准确性是确保数据分析和后续应用有效性的关键。以下是一些经过验证的方法和最佳实践&#xff0c;可以帮助提高爬虫数据的准确性&#xff1a; 1. 数据清洗 数据清洗是提升数据准确性的重要步骤&#xff0c;主要包括去除重复数据、处理缺失值和异常值。 去除…...

Obsidian及Zotero常用的插件

Obsidian插件 Minimal Theme Settings&#xff08;Life&#xff0c;zotero&#xff09;【必需】 界面样式设置所需插件 Style Settings&#xff08;Life&#xff0c;zotero&#xff09;【必需】界面样式设置所需插件 Recent Files&#xff08;Life&#xff0c;zotero&#xf…...

闲鱼IP属地是通过电话号码吗?

在闲鱼这样的二手交易平台上&#xff0c;用户的IP属地信息对于维护交易安全、增强用户间的信任至关重要。然而&#xff0c;关于闲鱼IP属地是如何确定的&#xff0c;不少用户存在疑惑&#xff0c;尤其是它与电话号码之间是否存在关联。本文将深入探讨这一问题&#xff0c;揭示闲…...

C#多线程异步连接MySQL与SQLserver数据库

C#多线程异步连接MySQL与SQLserver数据库 一、前言二、多线程异步连接数据库代码2.1代码块2.2代码说明 参考文档 一、前言 当编写代码连接多台设备上的数据库时&#xff0c;如果采用同步逐个连接的方式&#xff0c;在网络畅通的情况下连接速度尚可&#xff0c;但当其中一台设备…...

51单片机-数码管

目录 1、静态数码管 1.1、数码管是如何显示出字符 1.2、数码管静态显示原理 1.3、74HC573芯片的使用 1.4、静态数码管编程 2、动态数码管 2.1、数码管动态显示原理 2.2、74HC138芯片的使用 2.3、编写动态数码管程序 1、静态数码管 1.1、数码管是如何显示出字符 单片机…...

C#学习之S参数读取(s2p文件)

目录 一、创作灵感 二、S2PFileReader类 1.代码示例 2.代码说明 a.ReadS2PFile 方法&#xff1a; b.DataTable 结构&#xff1a; 三、S2PFileReader类的调用演示 1.使用示例 一、创作灵感 虽然MATLAB处理数据很实用&#xff0c;但是C#常用于程控仪器的控制&#xff0c…...

Spring Boot “约定大于配置”

什么是“约定大于配置”&#xff1f; “约定大于配置”是一种简化开发的设计理念。简单来说&#xff0c;就是框架默认提供了常见的配置和行为&#xff0c;开发者只需要按照约定来编写代码&#xff0c;避免了繁琐的配置&#xff0c;只在需要时进行定制和调整。这种理念在Spring…...

传输层协议TCP ( 下 )

文章目录 前言序号与确认序号超时重传RTOJacobson算法内核中超时时间的计算 滑动窗口滑动窗口延迟应答流量控制 拥塞控制慢启动拥塞避免快重传快速恢复 保活机制参考资料 前言 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是互联网最重要…...

NLP 八股 DAY1:BERT

BERT全称&#xff1a;Pre-training of deep bidirectional transformers for language understanding&#xff0c;即深度双向Transformer。 模型训练时的两个任务是预测句⼦中被掩盖的词以及判断输⼊的两个句⼦是不是上下句。在预训练 好的BERT模型后⾯根据特定任务加上相应的⽹…...

演示synchronized锁机制用法的简单Demo

演示synchronized锁机制用法的简单Demo。我们以"银行开户"场景为例&#xff1a;每个用户只能创建一个账户&#xff08;模拟类似原代码中每个用户只能有一个私有空间的限制&#xff09;。 第1步&#xff1a;创建项目结构 demo-lock ├── src/main/java/com/exampl…...

AISMM白皮书没说透的3个致命陷阱:模型幻觉评级缺失、多模态对齐盲区、实时推理SLA断层——附官方补丁V1.2预览

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AISMM白皮书下载&#xff1a;2026奇点智能技术大会首发 白皮书核心价值与定位 AISMM&#xff08;Artificial Intelligence System Maturity Model&#xff09;白皮书是面向AI系统工程化落地的首套全生…...

避坑指南:用51单片机驱动HC-SR04超声波模块,这5个细节没处理好,测距肯定不准!

51单片机驱动HC-SR04超声波模块的五大实战避坑指南 超声波测距在嵌入式开发中应用广泛&#xff0c;但很多开发者在使用51单片机驱动HC-SR04模块时&#xff0c;常常会遇到测距不准、数据跳变甚至完全无法工作的问题。本文将深入剖析五个最容易被忽视的关键细节&#xff0c;这些细…...

智慧树学习助手:3步实现自动化高效学习,节省90%课程时间

智慧树学习助手&#xff1a;3步实现自动化高效学习&#xff0c;节省90%课程时间 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 你是否曾为智慧树平台的繁琐操作而烦恼…...

别再手动拖拽了!用Python脚本批量旋转平移CATIA装配体,效率提升10倍

用Python解放双手&#xff1a;CATIA装配体位姿批量调整实战指南 在机械设计领域&#xff0c;CATIA作为行业标杆软件&#xff0c;其装配体操作一直是工程师日常工作的核心环节。但当你面对数百个需要统一调整位置的零部件时&#xff0c;是否也曾被重复的拖拽、旋转操作折磨到怀疑…...

华硕笔记本性能优化终极指南:G-Helper让你的ROG笔记本焕然一新

华硕笔记本性能优化终极指南&#xff1a;G-Helper让你的ROG笔记本焕然一新 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zen…...

wmux:让终端窗格变独立窗口,实现桌面级终端管理

1. 项目概述&#xff1a;一个为窗口管理而生的终端复用器如果你和我一样&#xff0c;常年泡在终端里&#xff0c;与多个服务器、多个项目、多个命令行工具打交道&#xff0c;那你一定对窗口管理这件事深有感触。传统的终端复用器&#xff0c;比如大名鼎鼎的tmux&#xff0c;功能…...

高速电流监测器响应速度优化与运放设计实践

1. 电流监测器响应速度的关键影响因素在高速光电检测系统中&#xff0c;电流监测器的响应速度直接决定了整个系统的实时性能。MAX4007作为一款高精度高压侧电流监测器&#xff0c;其标准配置下的响应时间往往成为系统瓶颈。通过深入分析&#xff0c;我们发现影响响应速度的核心…...

YOLOv11改进 | Conv篇 | 利用2024最新Mamba的MLLABLock二次创新C3k2(全网独家首发)

开始讲解之前推荐一下我的专栏,本专栏的内容支持(分类、检测、分割、追踪、关键点检测),专栏目前为限时折扣,欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。 一、本文介绍 本文给大家带来的改进机制是利用Mamba框架下的M…...

如何快速掌握Sanic自定义异常处理:构建健壮API的完整指南

如何快速掌握Sanic自定义异常处理&#xff1a;构建健壮API的完整指南 【免费下载链接】sanic Accelerate your web app development | Build fast. Run fast. 项目地址: https://gitcode.com/gh_mirrors/sa/sanic Sanic是一个基于Python的异步Web框架&#xff0c;以其高…...

航空协同办公大模型系统:揭秘行业领先的人工智能AI赋能方案

航空协同办公大模型系统&#xff1a;智能化协同管理新引擎航空协同办公大模型系统基于人工智能大模型技术&#xff0c;构建智能化协同管理平台&#xff0c;通过整合航空业全链条数据、优化业务流程、提升决策效率&#xff0c;助力航空企业向数字化、智能化转型。以下从系统架构…...