GitHub的使用教程

第一章:准备工作

1.1:安装Git并设置你的GitHub账户

1.1.1:注册 GitHub 账号:

访问 https://github.com/ 并注册一个新账号。

可以使用qq邮箱进行注册

在这里插入图片描述

输入邮箱后点击sign up for GitHub,设置密码后进行注册,输入验证码后注册成功。

1.1.2:安装Git

访问 https://git-scm.com/downloads 下载并安装适合你操作系统的 Git。

这是一个软件,通过该软件的命令行来上传和管理自己的仓库代码,安装步骤比较多,建议找个合适的文章跟着操作,这里为使用教程,不做详细的安装教程。

第二章:上传GitHub

2.1:Git Bash输入GitHub的信息

安装完成后,你需要进行一些基本的配置,打开你电脑的终端(Terminal)或命令提示符(Command Prompt/Git Bash):

  • 设置你的用户名:

    Bash

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

    eg:git config --global user.name “xxxxxxx”,那么xxxxxxx是你的GitHub用户名

  • 设置你的邮箱(请使用注册 GitHub 时使用的邮箱):

    Bash

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

    该邮箱是你注册时使用的qq邮箱

2.2:GitHub创建仓库

1)登录你的 GitHub 账号。

2)点击页面右上角的“+”号,然后选择“New repository”。

3)填写仓库信息:

  • Repository name (仓库名称): 给你的项目起一个名字,例如 my-first-project
  • Description (描述): (可选) 简单描述一下你的项目。
  • Public / Private (公开/私有):
    • Public:任何人都可以看到这个仓库,但只有你(或你授权的人)可以提交代码。
    • Private:只有你(或你授权的人)可以看到和提交代码。
  • Add a README file: (可选但建议勾选) 这会自动生成一个 README.md 文件,用于项目的说明。
  • Add .gitignore: (可选) 这是一个非常有用的文件,可以让你忽略某些不需要上传的文件(例如临时文件、编译结果等)。你可以根据你的编程语言选择一个模板。
  • Choose a license: (可选) 为你的项目选择一个开源许可证。

4)点击“Create repository”按钮。

2.3:在本地电脑上设置Git仓库

现在,你需要将你的代码文件夹变成一个 Git 可以管理的本地仓库。

这里有两种情况:

  • 情况A:你已经有一个现成的项目文件夹需要上传。

  • 情况B:你想要从零开始一个新的项目。

情况 A:上传一个已有的项目
  1. 打开终端或命令提示符。

  2. 使用 cd 命令进入你的项目文件夹。例如,如果你的项目在 D:\Projects\my-project,则输入:

    Bash

    cd D:/Projects/my-project
    

    其中D:/Projects/my-project为你的项目文件索引

  3. 初始化 Git 仓库:

    Bash

    git init
    

    这个命令会在你的项目文件夹里创建一个隐藏的 .git 文件夹,用于跟踪代码的变更。

  4. 关联远程仓库:

    • 回到你在 GitHub 上创建的仓库页面。

    • 点击绿色的“<> Code”按钮,复制 HTTPS 或 SSH 链接。对于初学者,HTTPS 更简单。

    • 在终端中运行以下命令,将你的本地仓库与远程仓库关联起来:

      Bash

      git remote add origin [你复制的仓库链接]
      

      例如:git remote add origin https://github.com/your-username/my-first-project.git

情况 B:从零开始一个新项目(克隆远程仓库)

如果你在创建远程仓库时勾选了 Add a README file,更简单的方法是直接将远程仓库“克隆”到你的本地电脑。

  1. 打开终端或命令提示符。

  2. cd 到你想要存放项目的目录下。

  3. 克隆仓库:

    • 回到你在 GitHub 上创建的仓库页面,复制仓库链接。

    • 运行 git clone 命令:

      Bash

      git clone [你复制的仓库链接]
      

      例如:git clone https://github.com/your-username/my-first-project.git

  4. 这会在当前目录下创建一个与你远程仓库同名的文件夹,并且已经自动设置好了本地与远程的关联。你只需要 cd 进入这个文件夹,然后开始添加或修改你的代码文件即可。

    Bash

    cd my-first-project
    

2.4:上传代码到GitHub

这是最核心的上传步骤。

  1. 添加文件到暂存区 (Staging Area):

    • 这个步骤告诉 Git,你希望将哪些文件的改动包含在下一次的“提交”中。

    • 添加所有文件和改动:

      Bash

      git add .
      
    • 或者只添加某个特定的文件:

      Bash

      git add 文件名
      
  2. 提交改动到本地仓库 (Commit):

    • “提交”就像是为你的代码拍一张快照,并附上一句说明。

    • 使用 -m 参数来添加本次提交的说明信息,这非常重要,请务必写清楚你做了什么改动。

      Bash

      git commit -m "这里写你的提交信息,例如:Initial commit 或 添加了登录功能"
      
  3. 将本地提交推送到远程仓库 (Push):

    • 这个命令会将你本地的提交上传到你之前关联的 GitHub 远程仓库中。

      Bash

      git push -u origin main
      
    • 解释:

      • push:是推送的动作。
      • -u origin main-u 参数会将本地的 main 分支与远程的 origin/main 分支关联起来,这样以后你再推送时,只需要简单地使用 git push 即可。
      • origin:是你之前为远程仓库设置的别名。
      • main:是默认的主分支名称。有些旧的仓库可能使用 master 作为主分支名,请根据你的实际情况调整。
  4. 输入你的 GitHub 用户名和密码(或 Personal Access Token)。

    • 终端可能会提示你输入凭据。
    • 注意: 现在 GitHub 不再支持直接使用密码进行命令行验证。你很可能需要创建一个 Personal Access Token (PAT) 来代替密码。
      • 如何创建 PAT: 访问 GitHub -> Settings -> Developer settings -> Personal access tokens -> Generate new token。为它设置一个名字并勾选 repo 权限,然后复制生成的 Token。在终端提示输入密码时,粘贴这个 Token。

上传完成后,刷新你的 GitHub 仓库页面,你就能看到你的代码文件了!

总结流程 (Cheat Sheet)

对于一个已有的项目,每次更新代码的流程如下:

Bash

# 1. 进入你的项目文件夹
cd /path/to/your/project# 2. 查看当前状态(可选,但好习惯)
git status# 3. 添加所有改动到暂存区
git add .# 4. 提交改动并写下说明
git commit -m "更新了xxx功能"# 5. 推送到 GitHub
git push

希望这个指南对你有帮助!祝你使用 GitHub 愉快!

出现错误解决方法:

1:error: remote origin already exists.

这个错误的意思是:你正在尝试添加一个名为 origin 的远程仓库地址,但是你的本地 Git 仓库已经配置了一个同名的远程地址。

原因是2.3步骤错误

解决方法:

步骤1:查看当前关联的远程仓库地址,在你的项目文件夹的终端里,运行以下命令来确认一下 origin 目前指向哪里:

Bash

git remote -v

它可能会显示类似这样的信息:

origin  https://github.com/some-other-user/some-other-repo.git (fetch)
origin  https://github.com/some-other-user/some-other-repo.git (push)

步骤2:删除旧的 origin 关联 运行以下命令:

Bash

git remote rm origin

步骤3:重新添加正确的远程仓库地址,现在,你可以重新执行之前出错的那一步,添加你自己的、正确的 GitHub 仓库地址:

Bash

git remote add origin [你复制的正确仓库链接]

例如: git remote add origin https://github.com/your-username/my-first-project.git

之后重新添加关联地址即可

2,error: src refspec main does not match any

错误原因

error: src refspec main does not match any

这个错误的核心意思是:Git 试图推送一个名为 main 的本地分支,但是在你的本地仓库里,它找不到这个分支。

为什么会这样?主要有两个原因:

  1. 你的默认分支不叫 main
    • 较新版本的 Git 默认创建的分支名叫 main
    • 但是,很多旧版本的 Git 或者一些 Git 客户端工具,默认创建的第一个分支名叫 master
    • 所以,你本地的实际分支很可能是 master,而你却命令它去推送 main 分支。
  2. 你还没有进行过任何一次提交 (commit):
    • 如果你用 git init 初始化了一个仓库,但没有执行过 git addgit commit,那么这个仓库里其实是没有任何分支的。分支是在你第一次提交时才被真正创建的。

如何解决

我们可以通过以下步骤来诊断并解决这个问题。

1)第一步:确认你当前的本地分支名

在你的终端里,运行以下命令来查看你所有的本地分支,以及你当前所在的分支(前面会有一个 * 号):

Bash

git branch

你很可能会看到以下两种情况之一:

  • 情况A:输出是 \* master

    * master
    

    这说明你的分支名是 master,而不是 main

  • 情况B:命令没有任何输出 这说明你还没有创建任何提交,因此分支也还未被创建。

2)第二步:根据情况解决问题

针对情况A:分支名叫 master

既然你的分支是 master,那么你在推送的时候,也应该推送 master 分支。把最后一步的命令修改一下即可:

Bash

# 使用 master 替代 main
git push -u origin master

(推荐的长期方案) 为了和现在 GitHub 的主流保持一致(GitHub 新建的仓库默认分支都是 main),你也可以选择将本地的 master 分支重命名为 main

Bash

# 1. 重命名分支
git branch -m master main# 2. 现在再执行推送 main 分支的命令
git push -u origin main
针对情况B:没有任何分支

这说明你忘记了 commit(提交)这一步。在你推送之前,必须要有一次提交,告诉 Git 你要上传的内容是什么。

请按顺序执行以下命令:

Bash

# 1. 添加所有文件到暂存区
git add .# 2. 创建一个提交,并附上说明信息
git commit -m "Initial commit"

执行完 commit 之后,Git 会自动为你创建一个默认分支(可能是 mainmaster)。现在,你可以再次尝试推送了。

  • 先检查一下新创建的分支叫什么: git branch
  • 然后执行推送:
    • 如果分支是 main: git push -u origin main
    • 如果分支是 master: git push -u origin master

总结:你应该怎么做

  1. 先运行 git branch 检查你当前的分支名。
  2. 如果显示 \* master,就用 git push -u origin master 命令进行推送。
  3. 如果什么都没显示,就先运行 git add .git commit -m "Initial commit",然后再进行推送。

绝大多数情况下,你的问题应该出在分支名叫 master 而不是 main

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93459.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Day56 Java面向对象10 方法重写

Day56 Java面向对象10 方法重写 1.为什么要方法重写 当子类不需要父类方法的全部内容 或 父类的方法无法满足子类的需求时,就需要在子类重写父类的方法 2.如何方法重写 重写必须发生在继承关系中,只能是子类重写父类子类重写的方法名必须和父类方法一致,方法体可以不同子类重写…

【C++】标准库中用于组合多个值的数据结构pair、tuple、array...

在 C 标准库中&#xff0c;有多种数据结构可用于组合多个值&#xff0c;每种结构都有其特定的设计目的和适用场景。以下是主要组合数据结构的分类解析&#xff1a; 一、核心组合数据结构 1. std::pair (C98) 用途&#xff1a;存储两个相关值&#xff08;键值对、坐标点等&#…

深入解析C++ STL链表(List)模拟实现

目录 一、需要实现的三个类及其成员函数接口 二、结点类的模拟实现 构造函数 三、迭代器类的模拟实现 1、迭代器类的作用 2、迭代器类模板参数说明 3、构造函数 4、前置运算符重载 5、后置运算符重载 6、前置 -- 运算符重载 7、后置 -- 运算符重载 8、运算符重载 …

将mysql数据库表结构导出成DBML格式

前言 DBML&#xff08;数据库标记语言&#xff09;是一种简单易读的 DSL 语言&#xff0c;用于定义数据库结构。 因为需要分析商品模块的表设计是否合理&#xff0c;所以需要图形化表&#xff0c;并显示表之前的关系。 想来想去&#xff0c;找到了DBML。所以就需要将数据库结构…

玩转tokenizer

&#x1f31f; 案例 1&#xff1a;加载现成的 BERT 分词器from tokenizers import Tokenizer# 加载一个预训练的 BERT tokenizer&#xff08;文件需要提前下载&#xff0c;比如bert-base-uncased&#xff09; tokenizer Tokenizer.from_file("bert-base-uncased-tokenize…

Day53--图论--106. 岛屿的周长(卡码网),110. 字符串接龙(卡码网),105. 有向图的完全联通(卡码网)

Day53–图论–106. 岛屿的周长&#xff08;卡码网&#xff09;&#xff0c;110. 字符串接龙&#xff08;卡码网&#xff09;&#xff0c;105. 有向图的完全联通&#xff08;卡码网&#xff09; 106. 岛屿的周长&#xff08;卡码网&#xff09; 方法&#xff1a;深搜 思路&am…

Elasticsearch 数据建模与映射(Mapping)详解

在 Elasticsearch 中&#xff0c;数据建模与映射&#xff08;Mapping&#xff09; 是决定搜索性能、存储效率和功能支持的核心环节。合理的映射设计能让搜索更精准、聚合更高效、存储更节省。 本文将全面详解 Elasticsearch 的 数据建模原则、字段类型、动态映射、自定义分析器…

5G工业一体机汽车零部件工厂的无纸化管理

在全球数字化转型的浪潮中&#xff0c;制造业对信息化、智能化的需求日益强烈。尤其是在汽车零部件领域&#xff0c;生产线的复杂性、质量追溯的苛刻性以及对效率的高要求&#xff0c;迫切需要一种高效、可靠、可扩展的管理模式。以“5G工业一体机”为核心的无纸化管理&#xf…

项目管理工具

1、概述IT 项目生命周期通常可分为启动、规划、执行、监控与控制、收尾五个核心阶段&#xff0c;每个阶段的目标和任务不同&#xff0c;所依赖的工具也各有侧重。以下按阶段梳理常用工具&#xff0c;涵盖项目管理、协作、技术开发等多个维度。2、启动阶段&#xff1a;明确项目目…

Linux 进程、线程与 exec/系统调用详解

1. wait 与 waitpid —— 子进程资源回收1.1 waitpid_t wait(int *wstatus);功能&#xff1a;阻塞等待&#xff0c;回收任意子进程的资源空间。参数&#xff1a;wstatus&#xff1a;保存子进程退出状态的变量地址NULL&#xff1a;不保存退出状态返回值&#xff1a;成功&#xf…

Laravel 使用ssh链接远程数据库

1.创建ssh ssh -i ./id_rsa -N -L 13306:127.0.0.1:3306 -p 22 root***对上述代码的解释&#xff1a; 命令是一个SSH隧道命令&#xff0c;用于将本地端口3306转发到远程服务器上的3306端口。以下是命令的详细解释&#xff1a;# 调用SSH客户端。 ssh # 指定用于身份验证的私钥文…

Python延申内容(一)

1.技术面试题 &#xff08;1&#xff09;TCP与UDP的区别是什么&#xff1f; 答&#xff1a; TCP&#xff08;传输控制协议&#xff09;&#xff1a;面向连接、可靠传输&#xff08;数据完整有序&#xff09;、流量控制、拥塞控制&#xff0c;适用于文件传输、网页浏览等场景。 …

Java 9 新特性及具体应用

目录 1. 模块系统&#xff08;Jigsaw&#xff09; 2. JShell&#xff08;REPL工具&#xff09; 3. 集合工厂方法 4. 接口私有方法 5. Stream API 增强 6. HTTP/2 客户端&#xff08;Incubator&#xff09; 7. 多版本JAR包 总结 1. 模块系统&#xff08;Jigsaw&#xff0…

第二十五天:构造函数/析构函数/拷贝构造

构造函数/析构函数/拷贝构造 1. 构造函数&#xff08;Constructor&#xff09; 定义与作用&#xff1a;构造函数是一种特殊的成员函数&#xff0c;其名称与类名相同&#xff0c;没有返回类型&#xff08;包括 void 也没有&#xff09;。它的主要作用是在创建对象时初始化对象的…

【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数),视频保存在指定位置

文章目录1 读取本地视频1.1 绝对路径 6种方式1.2 相对路径 4种方式1.3 读取本地视频2 视频基本信息3 调用摄像头 并将视频保存在指定位置P14 3-6 1 读取本地视频 现在要读取本地视频“video.mp4”&#xff0c; 视频文件“video.mp4”和playVideo.py脚本文件&#xff0c;都在…

【DL学习笔记】常用数据集总结

一、如何找数据集 paperswithcode&#xff0c;但好像没了 AutoDL Roboflow Kaggle Hungging Face 百度飞浆PP AIStudio 二、目标检测数据集格式 常用数据集坐标格式 MSCOCO &#xff1a; 坐标格式&#xff08;x&#xff0c;y&#xff0c;w&#xff0c;h&#xff…

19.3 Transformers量化模型极速加载指南:4倍推理加速+75%显存节省实战

Transformers量化模型极速加载指南:4倍推理加速+75%显存节省实战 实战项目:模型量化 Transformers 兼容性配置 量化模型加载核心配置逻辑 #mermaid-svg-rDjfMigtxckLYWp3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merm…

Android 终端接入 GB28181 国标视频平台的完整解决方案解析

1. 引言&#xff1a;让 Android 终端无缝融入国标视频网络在公安、交通、应急、工业、教育等领域&#xff0c;GB/T 28181 国标协议早已成为视频监控与指挥调度的事实标准。传统国标视频网络通常由固定部署的 IPC 摄像机、NVR、视频管理平台构成&#xff0c;设备形态单一。随着一…

Docker目录的迁移

# 迁移 docker 目录 &#xff08;无论容器与镜像占用空间大小&#xff0c;哪怕只占用1G&#xff0c;也需用此方式&#xff0c;否则可能迁移不成功&#xff09;service docker stopcd /var/lib/docker# 一个一个复制除 overlay2 外的其他所有文件夹cp -R builder /home/docker/l…

IOS APP 前端存储

UserDefaults优点简单易用提供简单的键值对存储接口无需复杂配置&#xff0c;开箱即用适合存储少量简单数据轻量级专门为存储小量数据设计内存占用小性能开销低自动持久化数据自动保存到磁盘应用重启后数据仍然可用通过synchronize()方法可以强制立即写入&#xff08;iOS 12已自…