【GitHub】如何将本地项目推送到GitHub 终端 or IDEA

1. 前提条件

  • GitHub账号:您需要一个GitHub账号。如果您还没有,您可以在GitHub官网上注册一个免费的账号。
  • Git安装:如果您的系统上还没有安装Git,请按照以下步骤进行安装。

2. 安装Git

2.1 在macOS上安装Git

您可以通过多种方式安装Git,最常用的方式是通过Homebrew(如果您没有安装Homebrew,请先访问Homebrew官网进行安装)。

  1. 打开Terminal,运行以下命令安装Git:

    brew install git
    
  2. 安装完成后,您可以通过以下命令确认Git是否安装成功:

    git --version
    

    如果安装成功,您将看到Git的版本号,例如:git version 2.30.1

2.2 在Windows上安装Git

  1. 访问Git for Windows并下载Git安装包。

  2. 运行安装程序并按照提示进行安装。在安装过程中,您可以使用默认设置或根据需要自定义设置。

  3. 安装完成后,打开Git Bash并运行以下命令确认安装成功:

    git --version
    

    如果安装成功,您将看到Git的版本号。


3. 在GitHub上创建仓库

3.1 创建一个新的GitHub仓库

  1. 登录到GitHub,点击右上角的“+”符号,并选择“New repository”(新建仓库)。

  2. 在“Repository name”字段中为您的项目命名。您可以选择公开或私有仓库。如果是私有仓库,只有您和被授权的人可以访问。如果是公开仓库,所有人都可以看到。

  3. 选填“Description”(描述)字段,添加项目的简要描述。

  4. 不要勾选“Initialize this repository with a README”,因为我们将从本地项目推送文件到GitHub。

  5. 点击“Create repository”按钮,完成创建。您将看到一个页面,提示如何从本地推送项目到GitHub。


4. 将本地项目与GitHub仓库关联

现在,您已经有了GitHub仓库,接下来需要将本地项目与该仓库关联。

4.1 初始化本地Git仓库

  1. 打开终端(macOS)或Git Bash(Windows),导航到您的项目文件夹:

    cd /path/to/your/local/project
    
  2. 初始化一个Git仓库:

    git init
    

    这将创建一个名为.git的隐藏文件夹,Git将使用该文件夹来跟踪项目中的更改。

4.2 添加文件到Git仓库

  1. 运行以下命令将所有文件添加到Git的暂存区:

    git add .
    

    这条命令会添加当前目录下的所有文件。如果您只想添加特定文件,可以用git add <文件名>命令。

  2. 提交文件:

    git commit -m "Initial commit"
    

    这将所有暂存区中的文件提交到本地Git仓库,并附上提交信息“Initial commit”。

4.3 将本地仓库与GitHub仓库关联

  1. 在GitHub上创建仓库后,您应该会在页面上看到类似如下的信息:

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

    这条命令将您的本地Git仓库与GitHub上的远程仓库关联起来。运行这条命令:

    git remote add origin https://github.com/your-username/your-repository.git
    
  2. 验证远程仓库是否正确添加:

    git remote -v
    

    您应该会看到类似以下的输出:

    origin  https://github.com/your-username/your-repository.git (fetch)
    origin  https://github.com/your-username/your-repository.git (push)
    

5. 将本地项目推送到GitHub

现在,您已经将本地Git仓库与GitHub远程仓库关联。接下来,我们将项目推送到GitHub。

5.1 推送代码到GitHub

  1. 首先,将代码推送到GitHub仓库的main分支(默认分支):

    git push -u origin main
    

    如果您的默认分支是master,则需要将main替换为master

    解释:

    • -u 选项将当前分支与远程分支进行关联。
    • origin 是远程仓库的别名。
    • main 是您要推送到的分支。
  2. Git会提示您输入GitHub用户名和密码。现在GitHub使用**Personal Access Token (PAT)**替代密码,请前往GitHub设置页面创建一个PAT,并在此输入。

    访问此链接以创建令牌:GitHub Personal Access Token。

5.2 验证推送是否成功

推送成功后,您可以在GitHub仓库的页面上看到所有文件。这样,本地项目就成功推送到了GitHub。


6. 处理常见问题

6.1 忘记添加.gitignore

如果您忘记在项目中添加.gitignore文件,导致某些不必要的文件(例如node_modules、日志文件)被提交,可以按如下步骤操作:

  1. 创建或修改.gitignore文件并添加您想要忽略的文件或文件夹。

  2. 运行以下命令将更改应用:

    git rm -r --cached .
    git add .
    git commit -m "Updated .gitignore"
    git push
    

6.2 Git身份验证问题

如果您每次推送都需要输入用户名和密码,可以配置SSH Key:

  1. 生成SSH Key:

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

    按提示操作,完成后将生成一个SSH密钥对。

  2. 将生成的SSH公钥添加到GitHub:

    • 在终端运行以下命令查看公钥:

      cat ~/.ssh/id_rsa.pub
      
    • 复制输出的内容,打开GitHub的“Settings” -> “SSH and GPG keys”,点击“New SSH Key”并粘贴公钥。

  3. 配置SSH远程仓库地址:

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

    之后,您就可以通过SSH推送代码,而无需输入密码。

7 通过IntelliJ IDEA将本地项目上传到GitHub

7.1. 前提条件

在使用IntelliJ IDEA推送代码到GitHub之前,确保以下条件已满足:

  1. GitHub账号:你已注册并拥有一个GitHub账户。
  2. Git安装:Git必须安装并配置在你的系统中,确认安装的方法可参考之前教程中的安装步骤。
  3. GitHub Token配置:GitHub不再使用直接的密码验证,因此您需要在GitHub上创建Personal Access Token,并在推送代码时使用。
7.1.1 配置GitHub Token(如果未配置)
  1. 登录到GitHub,导航到 Settings -> Developer Settings -> Personal access tokens
  2. 点击“Generate new token”按钮,设置一些必要的权限(如repo权限,用于访问和推送仓库)。
  3. 生成的Token将用于IDEA连接GitHub。

7.2. 通过IntelliJ IDEA将本地项目上传到GitHub

7.2.1 设置GitHub账户
  1. 打开IntelliJ IDEA,进入项目。
  2. 进入菜单栏的File -> Settings(macOS上是IntelliJ IDEA -> Preferences)。
  3. 在左侧导航栏中选择 Version Control -> GitHub
  4. 点击右上角的+号按钮,添加GitHub账户。登录方式有两种:
    • 使用GitHub账户直接登录:如果你选择这种方式,系统会引导你在浏览器中授权。
    • 使用Token登录:你可以将之前生成的GitHub Token粘贴到对应的输入框中。
7.2.2 初始化本地Git仓库
  1. 在IDEA中打开您的项目。
  2. 进入菜单栏的VCS -> Enable Version Control Integration
  3. 在弹出的对话框中选择Git,然后点击OK

此时,您的项目已经初始化为一个Git仓库,IntelliJ IDEA会开始跟踪项目的文件变化。

7.2.3 将本地项目提交到Git(本地)
  1. 右键点击项目根目录中的任意文件,选择Git -> Add。这会将所有更改的文件添加到Git暂存区。

    或者,您也可以直接点击右上角的 Commit 按钮(或快捷键 Cmd+K / Ctrl+K),将所有未暂存的更改提交。

  2. 在弹出的Commit Changes窗口中:

    • 选中您要提交的文件(或默认选择所有文件)。
    • Commit Message框中填写提交信息,如Initial Commit
    • 点击Commit按钮提交更改到本地Git仓库。
7.2.4 在GitHub上创建仓库
  1. 打开GitHub,点击页面右上角的“+”符号,选择New repository
  2. 设置仓库名称,填写描述(可选),选择是公开还是私有仓库。不要初始化README,因为我们会将本地项目推送过去。
  3. 点击“Create repository”按钮完成创建。
7.2.5 将本地项目推送到GitHub
  1. 在IDEA中,进入菜单栏的VCS -> Git -> Remotes,然后点击+号。

  2. 在弹出的窗口中,在Name字段填入 origin,在URL字段填入您刚刚在GitHub上创建的仓库URL,例如:

    https://github.com/your-username/your-repository.git
    
  3. 点击OK,保存远程仓库设置。

  4. 在右上角点击Git工具栏中的Push按钮,或者通过快捷键 Cmd+Shift+K(macOS)或 Ctrl+Shift+K(Windows/Linux)打开推送窗口。

  5. 在弹出的Push窗口中确认您要推送的分支(通常是mainmaster分支),然后点击Push

  6. 如果您是第一次推送,可能会弹出窗口提示输入GitHub用户名和密码。此时,您应输入GitHub的Personal Access Token作为密码。

7.2.6 验证推送是否成功

推送成功后,您可以在浏览器中访问您的GitHub仓库页面,查看所有文件是否正确上传。如果推送成功,您会看到所有项目文件已经同步到远程仓库。


8. 在IDEA中常用Git操作

8.3.1 提交文件(Commit)
  • 提交更改:在IntelliJ IDEA中右上角点击Commit按钮。您可以选择需要提交的文件,填写提交信息,并点击Commit完成提交操作。
8.3.2 推送到远程仓库(Push)
  • 每次提交本地更改后,您可以通过Push按钮将更改推送到远程仓库。可以使用快捷键Cmd+Shift+K(macOS)或 Ctrl+Shift+K(Windows/Linux)。
8.3.3 拉取远程仓库的更改(Pull)
  • 如果远程仓库有更新的内容,您可以使用Git -> Pull从远程仓库拉取最新的更改。
8.3.4 创建分支(Branch)
  1. 在右下角的Git分支管理工具中,点击当前分支名,选择New Branch
  2. 在弹出的对话框中为新分支命名,然后点击Create
8.3.5 合并分支(Merge)
  1. 切换到您希望合并到的分支。
  2. 在Git分支管理工具中,选择Merge into Current,然后选择要合并的分支。

9. 常见问题

9.1 提交时忘记添加.gitignore文件

如果提交代码时忘记添加.gitignore,可以在提交之后添加.gitignore,然后执行以下步骤:

  1. 创建或修改.gitignore文件,添加要忽略的文件或文件夹。
  2. 点击Git -> Show Git Changes(或使用Alt+9打开Version Control工具窗口)。
  3. 右键选择被跟踪的文件(即你不想要的文件),选择Git -> Untrack Files
  4. 然后重新提交并推送修改。
9.2 推送时提示权限问题

如果在推送代码时出现权限问题,可能是因为没有正确配置GitHub的凭证(例如PAT)。您可以通过以下方式修复:

  1. 进入菜单栏的File -> Settings -> Version Control -> GitHub,重新配置GitHub Token。
  2. 检查远程仓库的URL是否正确配置,使用 VCS -> Git -> Remotes 确保远程仓库是使用正确的GitHub URL。

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

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

相关文章

小小扑克牌算法

1.定义一个扑克牌类Card&#xff1a; package democard; public class Card {public String suit;//表示花色public int rank;//表示牌点数Overridepublic String toString() {return "{"suit rank"}";}//实例方法&#xff0c;初始化牌的点数和花色public…

Xinstall助力App推广,下载自动绑定提升转化率

在App推广和运营的过程中&#xff0c;我们经常会遇到一些痛点。比如&#xff0c;用户下载App后需要手动进行一系列繁琐的操作才能完成注册和绑定&#xff0c;这不仅影响了用户体验&#xff0c;还降低了转化率。那么&#xff0c;有没有一种方法能够简化这个过程&#xff0c;提升…

Vue使用axios实现Ajax请求

1、什么是 axios 在实际开发过程中&#xff0c;浏览器通常需要和服务器端进行数据交互。而 Vue.js 并未提供与服务器端通信的接口。从 Vue.js 2.0 版本之后&#xff0c;官方推荐使用 axios 来实现 Ajax 请求。axios 是一个基于 promise 的 HTTP 客户端。 关于 promise 的介绍…

开源 AI 智能名片小程序:开启内容营销新境界

摘要&#xff1a;本文深入探讨了在当今数字化时代&#xff0c;内容营销的重要性以及如何实现让用户主动找你的最佳效果。通过引入开源 AI 智能名片小程序这一创新工具&#xff0c;阐述了其在明确目标用户群体、迎合用户需求痛点和打造风格特色方面的独特优势&#xff0c;为企业…

达梦数据库踩坑

提示&#xff1a;第一次接触达梦&#xff0c;是真的不好用&#xff0c;各种报错不提示详细信息&#xff0c;吐槽归吐槽&#xff0c;还是需要学习使用的。 前言 题主刚接触达梦数据库时&#xff0c;本来是想下载官网的连接工具进行数据库连接的&#xff0c;但是谁曾想&#xff…

sql中的union与union all区别

sql中的union与union all区别 1、 区别2、效率3、使用建议 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、 区别 union&#xff1a; 功能&#xff1a;合并多个查询结果集&#xff0c;并自动去除重复行。特点&#xff1a;结果集中不包含重…

linux如何对c++进行内存分析

linux如何对c进行内存分析 背景分析方法以及原理原理分析结果以及重点关注 背景 在工作中&#xff0c;我遇到一个问题&#xff0c;需要将c写的进程部署到MCU上。由于MCU上可用的RAM 非常有限&#xff0c;所以在部署时就需要考虑到使用内存大小。所以为了搞清楚&#xff0c;内存…

计算机网络29——Linux基本命令vim,gcc编译命令

1、创建新用户 2、给用户设置密码 3、切换到新用户 切换到root用户 4、删除用户 5、查看ip 6、ping 查看物理上两台主机是否联通 7、netstatus 8、nslookup 查看网址的地址 9、负载均衡与容灾备份 负载均衡&#xff1a;指将负载&#xff08;工作任务&#xff09;进行平衡、分…

STM32如何修改外部晶振频率和主频

对于STM32F10x系列的单片机&#xff0c;除了STM32F10x_CL单片机&#xff0c;其它的单片机一般外部晶振HSE的时钟频率都默认是8MHz。如果我们使用的外部晶振为12Mhz&#xff0c;那么可以把上图绿色标记改为:12000000 72MHz的主频8MHz的外部晶振HSE*倍频系数9。当然如果像上面把外…

什么是HTTP DDOS,如何防护

在当今高度互联的网络世界中&#xff0c;网络安全威胁日益严峻&#xff0c;其中HTTP DDoS&#xff08;Distributed Denial of Service&#xff0c;分布式拒绝服务&#xff09;攻击作为一种常见的网络攻击手段&#xff0c;给企业和个人用户带来了巨大的挑战。今天我们就来详细介…

STM32与51单片机的区别:是否应该直接学习STM32?

STM32与51单片机的区别&#xff1a;是否应该直接学习STM32&#xff1f; 在单片机的世界里&#xff0c;STM32和51单片机都是非常重要的角色。对于初学者来说&#xff0c;是否可以直接跳过51单片机&#xff0c;直接学习STM32&#xff0c;这个问题一直存在争议。让我们深入探讨这…

Linux 文件权限详解与管理

文章目录 前言一、文件权限概述1. 权限表示格式2. 权限组合值 二、查看文件权限三、修改文件所有者与所属组1. 使用 chown 修改文件所有者2. 使用 chgrp 修改文件所属组3. 添加所有者 四、修改文件权限1. 符号方式2. 八进制方式3. 实际修改 总结 前言 在 Linux 系统中&#xf…

2024 新手指南:轻松掌握 Win10 的录屏操作

之前为了节约成本我们公司都采用录制软件操作都方式来为异地的同事进行远程操作培训的。所以我们尝试了不少的录屏工具&#xff0c;这里我就分享下win10怎么录屏的操作过程。 1.福昕录屏大师 链接&#xff1a;www.foxitsoftware.cn/REC/ 这款录屏工具是初学者的理想之选&…

网关登录校验(2)----网关如何将用户信息传递给微服务

1.微服务获取用户信息 现在&#xff0c;网关已经可以完成登录校验并获取登录用户身份信息。但是当网关将请求转发到微服务时&#xff0c;微服务又该如何获取用户身份呢&#xff1f; 由于网关发送请求到微服务依然采用的是Http请求&#xff0c;因此我们可以将用户信息以请求头…

【linux】4张卡,坏了1张,怎么办?

先禁用这张卡 grub 禁用&#xff0c;防止加载驱动 禁用这张卡的 PCI # 禁用 PCI 设备 0000:b1:00.0 (NVIDIA GPU) ACTION"add", SUBSYSTEM"pci", ATTR{vendor}"0x10de", KERNELS"0000:b1:00.0", RUN"/bin/sh -c echo 0000:b1:00…

QTCreator 调试:unknown debugger type “No engine“

QTCreator 调试&#xff1a;unknown debugger type "No engine" - kaizenly - 博客园 (cnblogs.com) 一开始Debuggers---Auto-detected这里第一row第一个项是标红的&#xff0c;然后没改东西&#xff0c;点完应用Apply以后&#xff0c;就可以调试了...&#xff08;不…

sqlite数据库设计工具

下载 开发环境 VS2022 + Qt5.14.2 CMake修改 add_subdirectory(sqlite3-cmake) include_directories(${CMAKE_SOURCE_DIR}/sqlite3-cmake/src) target_link_libraries(${PROJECT_NAME} sqlite3) 效果 参考 https://github.com/sqlitebrowser/sqlitebrowser

JavaWeb JavaScript 11.XML —— 配置文件

生活想埋没我&#xff0c;没想到我是颗种子 —— 24.9.19 一、XML 1.什么是XML XML是EXtensible Markup Languge的缩写&#xff0c;翻译过来就是可扩展标记语言。所以很明显&#xff0c;XML和HTML一样都是标记语言&#xff0c;也就是说它们的基本语法都是标签 可扩展 三个字…

AI健身体能测试之基于paddlehub实现引体向上计数个数统计

【引体向上计数】 本项目使用PaddleHub中的骨骼检测模型human_pose_estimation_resnet50_mpii&#xff0c;进行人体运动分析&#xff0c;实现对引体向上的自动计数。 1. 项目介绍 人体运动分析是近几年许多领域研究的热点问题。在学科的交叉研究上&#xff0c;人体运动分析涉…

《微软飞行模拟2024》储存空间需求仅不到前作的1/5

根据微软在最新一期 Xbox Wire 中的介绍&#xff0c;将于今年11 月登陆 Xbox Series X|S 主机的《微软飞行模拟2024》将比前作占用空间小很多。 微软解释了为何新作的文件大小仅为30GB&#xff0c;约为前作的五分之一。简单来说&#xff0c;微软使用了云流媒体传输技术。公司还…