【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) 就笔者所经历的诸多项目以及所接触到的不少工程师而言,大家在…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...

华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...

【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...