【Github】如何使用Git将本地项目上传到Github
【Github】如何使用Git将本地项目上传到Github
- 写在最前面
- 1. 注册Github账号
- 2. 安装Git工具
- 配置用户名和邮箱
- 仅为当前项目配置(可选)
- 3. 创建Github仓库
- 4. 获取仓库地址
- 5. 本地操作
- (1)进入项目文件夹
- (2)克隆远程仓库
- (3)将本地项目文件复制到克隆的文件夹中
- 6. 提交代码到Github
- (1)进入仓库文件夹
- (2)添加文件到暂存区
- (3)提交代码
- (4)推送到远程仓库
- 1. 确认默认分支名称(已解决)
- 2. 如果当前分支为空
- 3. 如果远程仓库分支名称需要更改
- 4. 如果问题仍然存在
- 7. Git命令
- 总结
写在最前面
版权声明:本文为原创,遵循 CC 4.0 BY-SA 协议。转载请注明出处。
Git是开发者必备的版本控制工具之一,而Github是一个非常流行的代码托管平台。
本来想直接拖进去上传的,但是文件数量超了。
本文将通过简单的步骤,带你完成将本地项目上传到Github的过程。
参考:https://cloud.tencent.com/developer/article/1504684
1. 注册Github账号
如果你还没有Github账号,先前往 Github官网 注册一个账号。
2. 安装Git工具
为了在本地使用Git,你需要先安装Git工具。可以通过以下链接下载适合你系统的安装包:
Git for Windows
安装过程非常简单,一路“下一步”即可完成。
然后配置用户名和邮箱
配置用户名和邮箱
-
配置全局用户名和邮箱
在终端中运行以下两条命令:git config --global user.name "Your Name" git config --global user.email "your_email@example.com"
将
"Your Name"
替换为你的名字,"your_email@example.com"
替换为你在Github上注册时使用的邮箱。示例:
git config --global user.name "Yu" git config --global user.email "yu@example.com"
-
验证配置是否成功
运行以下命令查看当前的配置:git config --global --list
输出类似以下内容:
user.name=Yu user.email=yu@example.com
表示配置成功。
仅为当前项目配置(可选)
如果你不想全局设置用户名和邮箱,只为当前项目设置身份,可以省略 --global
:
git config user.name "Your Name"
git config user.email "your_email@example.com"
3. 创建Github仓库
登录Github后,点击右上角的 New repository 按钮来新建一个项目。
在新建页面中填写以下信息:
- Repository name: 仓库名称(建议使用英文命名,避免中文)。
- Description (optional): 仓库描述,可选填写。
- Public/Private: 仓库权限选择,公开或私有。
- Initialize this repository with a README: 是否初始化仓库并添加README文件。
- gitignore: 根据项目类型生成.gitignore文件。
- license: 选择适合的开源协议。
点击 Create repository 即可完成创建。
4. 获取仓库地址
创建成功后,页面上会显示一段仓库的HTTPS地址,例如:
https://github.com/YourUsername/YourRepository.git
点击右侧按钮复制该地址备用。
5. 本地操作
(1)进入项目文件夹
在本地找到你要上传的项目文件夹,右键选择 Git Bash Here(前提是Git已安装),打开终端。
(2)克隆远程仓库
在终端中输入以下命令,将Github上的仓库克隆到本地:
git clone https://github.com/YourUsername/YourRepository.git
将 https://github.com/YourUsername/YourRepository.git
替换为你刚才复制的仓库地址。
(3)将本地项目文件复制到克隆的文件夹中
克隆完成后,你会发现项目文件夹下多了一个与Github仓库同名的文件夹。将原本项目的所有文件(除了新生成的文件夹)复制到该文件夹中。
6. 提交代码到Github
在终端中执行以下命令完成提交:
(1)进入仓库文件夹
cd YourRepository
(2)添加文件到暂存区
git add .
注意 .
表示将所有更改添加到暂存区。
(3)提交代码
git commit -m "提交信息"
将 提交信息
替换为你的提交备注,例如 "first commit"
。
git commit -m "first commit"
(4)推送到远程仓库
git push -u origin master
该步骤会将本地代码上传到Github。系统会提示你输入Github的用户名和密码,完成后代码就会成功上传。
如果报错:
error: src refspec master does not match any
error: failed to push some refs to ''
这个错误通常是由于当前分支名称与目标远程仓库的默认分支名称(如 master
或 main
)不匹配,或者本地分支还没有提交过任何内容导致的。
1. 确认默认分支名称(已解决)
现在大部分新的Github仓库的默认分支是 main
,而不是 master
。你可以通过以下命令查看本地分支名称:
git branch
如果本地分支名称是 main
,而不是 master
,则需要在推送命令中改用 main
分支:
git push -u origin main
2. 如果当前分支为空
如果本地仓库没有任何提交记录,会导致无法推送。确认是否已经提交了更改:
git log
如果没有任何日志记录,请确保完成以下步骤后再尝试推送:
-
添加文件到暂存区:
git add .
-
提交更改:
git commit -m "Initial commit"
-
再次推送:
如果你的默认分支是main
:git push -u origin main
如果你的默认分支是
master
:git push -u origin master
3. 如果远程仓库分支名称需要更改
远程仓库的默认分支名称可能是 main
,但本地分支仍然是 master
。在这种情况下,你可以重命名本地分支为 main
:
-
重命名本地分支:
git branch -m master main
-
将本地分支与远程分支关联:
git push -u origin main
4. 如果问题仍然存在
如果依然遇到问题,可以尝试以下命令,重新同步本地和远程分支:
-
拉取远程分支(以防远程有初始化的
main
分支):git pull origin main
-
推送更改:
git push -u origin main
7. Git命令
1 查看、添加、提交、删除、找回,重置修改文件2 3 4 git help <command> # 显示command的help5 6 git show # 显示某次提交的内容 git show $id7 8 git co -- <file> # 抛弃工作区修改9 10 git co . # 抛弃工作区修改11 12 git add <file> # 将工作文件修改提交到本地暂存区13 14 git add . # 将所有修改过的工作文件提交暂存区15 16 git rm <file> # 从版本库中删除文件17 18 git rm <file> --cached # 从版本库中删除文件,但不删除文件19 20 git reset <file> # 从暂存区恢复到工作文件21 22 git reset -- . # 从暂存区恢复到工作文件23 24 git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改25 26 git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments"27 28 git ci --amend # 修改最后一次提交记录29 30 git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象31 32 git revert HEAD # 恢复最后一次提交的状态33 34 查看文件diff35 36 37 git help <command> # 显示command的help38 39 git show # 显示某次提交的内容 git show $id40 41 git co -- <file> # 抛弃工作区修改42 43 git co . # 抛弃工作区修改44 45 git add <file> # 将工作文件修改提交到本地暂存区46 47 git add . # 将所有修改过的工作文件提交暂存区48 49 git rm <file> # 从版本库中删除文件50 51 git rm <file> --cached # 从版本库中删除文件,但不删除文件52 53 git reset <file> # 从暂存区恢复到工作文件54 55 git reset -- . # 从暂存区恢复到工作文件56 57 git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改58 59 git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments"60 61 git ci --amend # 修改最后一次提交记录62 63 git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象64 65 git revert HEAD # 恢复最后一次提交的状态66 67 查看提交记录68 69 git log git log <file> # 查看该文件每次提交记录70 71 git log -p <file> # 查看每次详细修改内容的diff72 73 git log -p -2 # 查看最近两次详细修改内容的diff74 75 git log --stat #查看提交统计信息76 tig77 78 Mac上可以使用tig代替diff和log,brew install tig79 80 81 Git 本地分支管理82 查看、切换、创建和删除分支83 84 85 git br -r # 查看远程分支86 87 git br <new_branch> # 创建新的分支88 89 git br -v # 查看各个分支最后提交信息90 91 git br --merged # 查看已经被合并到当前分支的分支92 93 git br --no-merged # 查看尚未被合并到当前分支的分支94 95 git co <branch> # 切换到某个分支96 97 git co -b <new_branch> # 创建新的分支,并且切换过去98 99 git co -b <new_branch> <branch> # 基于branch创建新的new_branch
100
101 git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
102
103 git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支
104
105 git br -d <branch> # 删除某个分支
106
107 git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
108 分支合并和reba
109 git merge <branch> # 将branch分支合并到当前分支
110
111 git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
112
113 git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
114 Git补丁管理(方便在多台机器上开发同步时用)
115
116
117 git merge <branch> # 将branch分支合并到当前分支
118
119 git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
120
121 git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
122
123 Git暂存管
124 git stash # 暂存
125
126 git stash list # 列所有stash
127
128 git stash apply # 恢复暂存的内容
129
130 git stash drop # 删除暂存区
131
132 Git远程分支管理
133
134 git pull # 抓取远程仓库所有分支更新并合并到本地
135
136 git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
137
138 git fetch origin # 抓取远程仓库更新
139
140 git merge origin/master # 将远程主分支合并到本地当前分支
141
142 git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支
143
144 git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
145
146 git push # push所有分支
147
148 git push origin master # 将本地主分支推到远程主分支
149
150 git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
151
152 git push origin <local_branch> # 创建远程分支, origin是远程仓库名
153
154 git push origin <local_branch>:<remote_branch> # 创建远程分支
155
156 git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),然后再push删除远程分支
157
158 Git远程仓库管
159 git remote -v # 查看远程服务器地址和仓库名称
160
161 git remote show origin # 查看远程服务器仓库状态
162
163 git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址
164
165 git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) git remote rm <repository> # 删除远程仓库
166
167 创建远程仓库
168
169 git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库
170
171 scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上
172
173 mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库
174
175 git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址
176
177 git push -u origin master # 客户端首次提交
178
179 git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track
180
181 git remote set-head origin master # 设置远程仓库的HEAD指向master分支
182
183 也可以命令设置跟踪远程库和本地库
184
185 git branch --set-upstream master origin/master
186
187 git branch --set-upstream develop origin/develop
总结
通过以上步骤,你就可以轻松地将本地项目上传到Github。这不仅能帮助你备份代码,还能与他人协作开发。希望这篇教程对你有所帮助!如果有问题,欢迎留言讨论! 😊
hello,我是 是Yu欸 。如果你喜欢我的文章,欢迎三连给我鼓励和支持:👍点赞 📁 关注 💬评论,我会给大家带来更多有用有趣的文章。
原文链接 👉 ,⚡️更新更及时。
欢迎大家添加好友交流。
相关文章:

【Github】如何使用Git将本地项目上传到Github
【Github】如何使用Git将本地项目上传到Github 写在最前面1. 注册Github账号2. 安装Git工具配置用户名和邮箱仅为当前项目配置(可选) 3. 创建Github仓库4. 获取仓库地址5. 本地操作(1)进入项目文件夹(2)克隆…...

集合Queue、Deque、LinkedList、ArrayDeque、PriorityQueue详解
1、 Queue与Deque的区别 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque; 平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知道Queue的作用,于是就直接官方…...
谈一下开源生态对 AI人工智能大模型的促进作用
谈一下开源生态对 AI人工智能大模型的促进作用 作者:开源呼叫中心系统 FreeIPCC,Github地址:https://github.com/lihaiya/freeipcc 开源生态对大模型的促进作用是一个多维度且深远的话题,它不仅加速了技术创新的速度,…...

基于python的机器学习(四)—— 聚类(一)
目录 一、聚类的原理与实现 1.1 聚类的概念和类型 1.2 如何度量距离 1.2.1 数据的类型 1.2.2 连续型数据的距离度量方法 1.2.3 离散型数据的距离度量方法 1.3 聚类的基本步骤 二、层次聚类算法 2.1 算法原理和实例 2.2 算法的Sklearn实现 2.2.1 层次聚类法的可视化实…...

实时数据开发 | 怎么通俗理解Flink容错机制,提到的checkpoint、barrier、Savepoint、sink都是什么
今天学Flink的关键技术–容错机制,用一些通俗的比喻来讲这个复杂的过程。参考自《离线和实时大数据开发实战》 需要先回顾昨天发的Flink关键概念 检查点(checkpoint) Flink容错机制的核心是分布式数据流和状态的快照,从而当分布…...

C++设计模式-策略模式-StrategyMethod
动机(Motivation) 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。 如何在运…...

小程序免备案:快速部署与优化的全攻略
小程序免备案为开发者提供了便捷高效的解决方案,省去繁琐的备案流程,同时通过优化网络性能和数据传输,保障用户体验。本文从部署策略、应用场景到技术实现,全面解析小程序免备案的核心优势。 小程序免备案:快速部署与优…...

Jmeter中的定时器
4)定时器 1--固定定时器 功能特点 固定延迟:在每个请求之间添加固定的延迟时间。精确控制:可以精确控制请求的发送频率。简单易用:配置简单,易于理解和使用。 配置步骤 添加固定定时器 右键点击需要添加定时器的请求…...

C++自动化测试:GTest 与 GitLab CI/CD 的完美融合
在现代软件开发中,自动化测试是保证代码质量和稳定性的关键手段。对于C项目而言,自动化测试尤为重要,它能有效捕捉代码中的潜在缺陷,提高代码的可维护性和可靠性。本文将重点介绍如何在C项目中结合使用Google Test(GTe…...
vscode连接远程开发机报错
远程开发机更新,vscode连接失败 报错信息 "install" terminal command done Install terminal quit with output: Host key verification failed. Received install output: Host key verification failed. Failed to parse remote port from server ou…...
神经网络12-Time-Series Transformer (TST)模型
Time-Series Transformer (TST) 是一种基于 Transformer 架构的深度学习模型,专门用于时序数据的建模和预测。TST 是 Transformer 模型的一个变种,针对传统时序模型(如 RNN、LSTM)在处理长时间依赖、复杂数据关系时的限制而提出的…...

IDEA 2024安装指南(含安装包以及使用说明 cannot collect jvm options 问题 四)
汉化 setting 中选择插件 完成 安装出现问题 1.可能是因为之前下载过的idea,找到连接中 文件,卸载即可。...

Fakelocation Server服务器/专业版 Centos7
前言:需要Centos7系统 Fakelocation开源文件系统需求 Centos7 | Fakelocation | 任务一 更新Centos7 (安装下载不再赘述) sudo yum makecache fastsudo yum update -ysudo yum install -y kernelsudo reboot//如果遇到错误提示为 Another app is curre…...

oracle的静态注册和动态注册
oracle的静态注册和动态注册 静态注册: 静态注册 : 指将实例的相关信息手动告知 listener 侦 听 器 , 可以使用netmgr,netca,oem 以及直接 vi listener.ora 文件来实现静态注册,在动态注册不稳定时使用,特点是:稳定&…...

机器翻译基础与模型 之四:模型训练
1、开放词表 1.1 大词表和未登陆词问题 理想情况下,机器翻译应该是一个开放词表(Open Vocabulary)的翻译任务。也就是,无论测试数据中包含什么样的词,机器翻译系统都应该能够正常翻译。 现实的情况是即使不断扩充词…...

Vue——响应式数据,v-on,v-bind,v-if,v-for(内含项目实战)
目录 响应式数据 ref reactive 事件绑定指令 v-on v-on 鼠标监听事件 v-on 键盘监听事件 v-on 简写形式 属性动态化指令 v-bind iuput标签动态属性绑定 img标签动态属性绑定 b标签动态属性绑定 v-bind 简写形式 条件渲染指令 v-if 遍历指令 v-for 遍历对象的值 遍历…...
ceph 18.2.4二次开发,docker镜像制作
编译环境要求 #需要ubuntu 22.04版本 参考https://docs.ceph.com/en/reef/start/os-recommendations/ #磁盘空间最好大于200GB #内存如果小于100GB 会有OOM的情况发生,需要重跑 目前遇到内存占用最高为92GB替换阿里云ubuntu 22.04源 将下面内容写入/etc/apt/sources.list 文件…...
产品经理的项目管理课
各位产品经理,大家下午好,今天我给大家分享的主题是“产品经理如何做好项目管理”。 其实,我是不想分享这个主题的,是因为在周会中大家投票对这个议题最感兴趣,11个同学中有7个投了这个主题,所以才有了这次…...
Linux 下的 AWK 命令详细指南与示例
目录 简介AWK 的主要特性基本语法示例1. 打印文件的所有行2. 打印特定字段3. 打印匹配模式的行4. 基于条件过滤并打印5. 使用内置变量6. 执行算术运算7. 字符串操作8. 使用 BEGIN 和 END 块9. 处理分隔符文件 高级功能自定义脚本使用外部变量 总结 简介 AWK 是 Linux 中功能强…...
FPGA经验谈系列文章——8、复位的设计
前言 剑法往往有着固定的招式套路,而写代码似乎也存在类似的情况。不知从何时起,众多 FPGA 工程师们在编写代码时开启了一种关于 always 语句块的流行写法,那就是: always @(posedge i_clk or negedge i_rstn) 就笔者所经历的诸多项目以及所接触到的不少工程师而言,大家在…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...