如何将本地项目上传到git服务器?,git上传步骤有哪些?

把本地项目推送到远程 Git 服务器的核心操作只有三步:先在服务器创建空仓库,再在本地关联远程地址,最后执行 push 命令,整个过程熟练后不超过五分钟。

很多开发者初次接触 Git 时,容易被各种术语绕晕,其实不用管那些复杂的工作流理论,你只需要理解一个朴素的场景:你手里有一份写好的代码,想把它完整地搬到一个远程的“仓库房间”里,并且以后每次改动都能同步过去,这篇文章会把你当成一个刚入行的同事,手把手带你把这条上传链路跑通。

两种上传项目到GitHub中的方法
加载中
两种上传项目到GitHub中的方法
初
初神雨
5.7万--
原视频地址

推送前必须搞清楚的三种连接方式和适用场景

在动手敲命令之前,先花两分钟确认你面对的是哪种服务器环境,不同的环境,初始化方式有天壤之别,选错了方向会让后续操作变得拧巴。

第一种是 GitLab 或 GitHub 这类代码托管平台。 你只需要在网页端点几下按钮,创建一个空项目,然后本地按提示操作即可,这类平台最常见的连接方式是 HTTPS 和 SSH,HTTPS 每次推送需要输入账号密码,SSH 则通过密钥对认证,配置一次后终身免密,行业共识认为,SSH 是体验最顺畅的方式。

第二种是你自己买的云服务器。 比如简米云、酷番云的 ECS,你需要自己在服务器上安装 Git,并用 git init --bare 命令创建一个裸仓库,裸仓库没有工作目录,只存放版本历史,这是专门用来接收推送的标准做法。

第三种是公司内网搭建的 Gerrit 或 Gitea。 这种环境的权限控制一般更严格,通常要求你先在平台上上传 SSH 公钥,再由管理员分配项目权限,如果你拿到的是一个类似 ssh://git@192.168.1.100:29418/project.git 的地址,直接把它当作 remote 地址即可。

第一步:在本地生成 SSH 密钥并完成配对

SSH 密钥就像是你进出服务器大门的身份证,不管你面对的是 GitHub 还是自己的云主机,都需要先在本地生成这对钥匙,打开终端(Mac 和 Linux 用户用自带的 Terminal,Windows 用户建议用 Git Bash),输入以下命令:

ssh-keygen -t rsa -b 4096 -C "你的邮箱"

命令执行后,系统会提示你选择保存路径和设置密码短语,路径直接按回车选默认即可,密码短语可以留空,生成完成后,你会得到两个文件:id_rsa(私钥,打死都不能给别人看)和 id_rsa.pub(公钥,需要放到服务器上)。

Mac 用户注意,如果你的电脑安装了多个 Git 版本,建议先确认一下当前用的是哪个:

which git

如果显示的是 /usr/bin/git,说明用的是系统自带版本,没问题,如果显示的是 Homebrew 安装的路径,后续操作也没差别,密钥配置方法完全一致。

接下来查看你的公钥内容:

cat ~/.ssh/id_rsa.pub

把这串以 ssh-rsa 开头、以邮箱结尾的字符全部复制,然后登录你的 Git 服务器,找到 Settings -> SSH Keys 或者 个人设置 -> SSH 公钥 的入口,把内容粘贴进去保存。

Windows 用户可能会遇到一个坑:如果你的用户名包含中文,~/.ssh 目录可能无法被 Git 正确解析,遇到这种情况,可以在 Git Bash 中手动指定路径:

export HOME="C:/Users/你的用户名"

然后重新生成密钥,确保密钥文件生成在这个目录下。

第二步:在远程服务器上建立仓库地基

远程仓库的创建方式取决于你用的是托管平台还是自建服务器,如果使用 GitHub/GitLab,操作路径非常直观:点击右上角的 New repository(或 新建项目),输入项目名称,注意不要勾选 “Initialize this repository with a README” 选项,勾选了 README 会让仓库带有一个初始提交,这会导致你本地的历史与远程历史不一致,首次 push 时就会报 “failed to push some refs” 的错误。

如果是自建服务器,登录到服务器上执行:

mkdir /var/git/project.git
cd /var/git/project.git
git init --bare

这里要特别说明,git init 和 git init --bare 是两回事,前者创建的是带工作区的普通仓库,用于本地开发;后者创建的是中央裸仓库,用于接收推送,一旦用错,推送时会出现 “ refusing to update checked out branch” 的报错。

第三步:本地仓库初始化与 remote 配置

现在回到你的本地项目目录,如果你的项目目录还不是 Git 仓库,先执行:

git init

然后添加远程地址,以 GitHub 为例,地址有两种格式:

HTTPS格式:https://github.com/你的用户名/project.git
SSH格式:git@github.com:你的用户名/project.git

推荐使用 SSH 格式,因为 HTTPS 格式在推送时每次都要输入密码,执行:

git remote add origin git@github.com:你的用户名/project.git

添加完成后,可以用 git remote -v 查看远程地址是否配置正确,如果发现地址写错了,用 git remote set-url origin 正确地址 改正。

多人协作场景下尽量别用 master 作为主分支名,因为近些年很多平台默认分支已经改成了 main,为了减少不必要的麻烦,建议在本地就统一好分支名:

git branch -M main

如果你想了解新项目用 Git 管理文件的基本流程,这里的核心操作便是先 git add 将工作区文件暂存,再 git commit 提交到本地仓库,git push 推送到远程。

第四步:执行 add、commit、push 三连击

接下来就是正式上传了,先把项目中的文件加入暂存区,这里有个高频操作细节:强烈建议你在项目根目录创建 .gitignore 文件,把 node_modules、target、.idea 这类依赖或编译产物排除在外,否则你会上传一大堆根本不需要的文件,既拖慢推送速度,也让仓库显得杂乱。

.ignore 文件内容示例:

node_modules/
dist/
target/
.idea/
.log

然后执行暂存和提交:

git add .
git commit -m "Initial commit: 项目初始化"

如果项目文件太多,提交时提示 hint: Waiting for your editor to close the file 卡住了,说明 Git 默认打开了 Vim 编辑器等待你输入提交信息,此时输入 wq 回车即可退出,为了避免每次都被 Vim 卡住,可以设置默认编辑器为 VS Code:

git config --global core.editor "code --wait"

最后推送:

git push -u origin main

加 -u 参数是为了把本地 main 分支与远程 main 分支建立关联,之后你就可以直接使用 git push 和 git pull,无需再加参数。

git push origin master 时报错怎么办

新手最容易碰到的报错就是推送被拒绝,显示 error: failed to push some refs to,这句话的意思是远程仓库存在你本地没有的提交,常见原因有两种:

远程仓库创建时勾选了 README 或 .gitignore 选项。 这时远程有一个基于空仓库的初始提交,而你本地是基于空仓库的另一个提交,两者没有共同祖先,解决办法是先把远程内容拉取下来并合并:

git pull origin main --allow-unrelated-histories

然后执行 git push -u origin main 即可。

自己之前在网页端误提交了文件。 如果确认远程上的文件确实没用,可以强制覆盖:

git push -f origin main

但这里要提醒你:-f 参数慎用,它会强制重写远程提交历史,如果项目里有其他协作者,他们的本地历史会与远程分叉,清理起来非常麻烦,多人项目不要用,宁可先把远程分支删除再重新推送。

如何用 git 上传项目到服务器并保持后续同步

首次上传成功后,日常的同步操作就非常简单了,你只需要记住两条命令:

git add .
git commit -m "描述这次改了什么"
git push

如果你修改了很多文件,想快速查看哪些文件改动了,用 git status,如果你想把已提交的单个文件保留在本地、但不纳入版本控制,需要执行 git rm --cached 文件名。

提交频率的拿捏:业内专家指出,提交粒度应该以“一个逻辑功能”为单位,比如修复了一个 bug,提交一次;添加了一个新页面,提交一次,不要在代码里揉杂十几个不相关的改动再一次性提交,这样后续回溯问题时会非常困难。

关于分支策略,很多团队采用 Git Flow 或者 GitHub Flow,如果你是一个人开发,直接在 main 分支上提交完全没有问题,如果是多人协作,建议遵循一个简单的规则:不要直接往 main 推,先拉一个 feature 分支,开发完再合并,具体操作是:

git checkout -b feature/你的功能名

这个命令会创建一个新分支并切换过去,你在这个分支上的提交不会影响主分支,开发完成后,切换回 main,合并分支,推送:

git checkout main
git merge feature/你的功能名
git push

本地仓库推送到远程仓库时出现 permission denied 的排查思路

permission denied (publickey) 这个报错几乎所有人都会遇到,看到这个提示,先自查三个位置:

检查密钥文件是否存在,如果你换过电脑或者重装过系统,密钥文件在 ~/.ssh 目录下找得到吗?找不到就重新生成一份,然后去服务器后台把新的公钥替换掉旧公钥。

检查远程地址是否采用了 SSH 格式,有人会犯把 HTTPS 地址和 SSH 密钥混用的错误,执行 git remote -v 看输出,如果地址以 https:// 开头,就说明你本地还是走 HTTPS 协议,执行:

git remote set-url origin git@github.com:你的用户名/project.git

检查公钥是否完整粘贴,复制公钥时,确保把整个 ssh-rsa 到邮箱结尾的全部字符都复制了,不要漏掉开头或者多了换行符。

检查网站后台是否填错了公钥框,GitHub 的 SSH Keys 设置在 Settings -> SSH and GPG keys 页面,如果你用的是 GitLab,路径是 Preferences -> SSH Keys,如果你是公司内网的 GitLab,还需要确认自己的账号有没有被管理员禁用。

如何用 git 上传项目时忽略大文件和敏感信息

一个容易被忽略的问题是误把敏感文件传上去。.env 配置文件里存了数据库密码、API 密钥,一旦推送到远程仓库,即使后来删掉,这些敏感信息也永远留在了 Git 历史里,所以在上传之前,提前规划好 .gitignore 的内容至关重要。

除了 .env 文件,还有几类文件也应该坚决排除:

  • 编译产物:dist、build、.class
  • 依赖目录:node_modules、vendor
  • IDE 配置文件:.idea、.vscode(团队统一配置除外)
  • 系统文件:.DS_Store、Thumbs.db
  • 日志文件:.log

如果你不小心把一个大文件推上去了,而且后续不想让它成为仓库的负担,Git 官方推荐的方案是使用 git filter-repo 工具清理历史,这个操作涉及改写历史,建议在离线状态下执行,并且需要团队一致配合。

另一个常见需求是上传超过 100MB 的大文件,普通 Git 仓库对单个文件的大小有限制,GitHub 限制单个文件 100MB,超过这个限制你需要使用 Git LFS(Large File Storage),如果你想省钱,这里有个相对靠谱的方案:将大文件放在对象存储(如简米云 OSS、酷番云 COS),然后在仓库里放一个下载脚本,让使用者自行拉取,这样既保持仓库轻量,也不用额外买 Git LFS 的存储空间。

常见问题 Q&A

本地项目已经推送到 GitHub,怎么换成 Gitee 的地址?

执行 git remote set-url origin git@gitee.com:你的用户名/project.git 即可替换,替换后执行 git push -u origin main 推送,如果你想同时推送到两个平台,可以添加第二个远程地址:git remote add gitee git@gitee.com:你的用户名/project.git,推送时用 git push gitee main。

推送到一半断网了,项目会不会处于损坏状态?

不会,Git 的推送过程是原子的,服务器只有在完整接收所有对象后才会更新引用,断网后重新执行 git push 即可,Git 会从断点继续传输未完成的对象,不会产生重复或损坏的历史记录。

不小心把不该提交的文件推送到了远程,怎么彻底移除?

如果文件在最新提交中,直接从 .gitignore 中添加排除规则,然后执行 git rm --cached 文件名、提交并推送,远程文件会被移除,但仍保留在历史中,如果敏感信息已经泄露,需要执行 git filter-repo 清除历史,或者直接删除远程仓库重新创建,然后强制推送全新历史。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/783994.html

赞 (0)
上一篇 2026年11月5日 15:34
2020年ug12服务器名怎么输入,安装时需要注意什么?
下一篇 2026年8月29日 13:44

相关推荐

  • 服务器配置有哪些基本要求?搭建网站需要什么配置?

    服务器配置的基本要求服务器的配置取决于其承载的业务类型、用户规模以及对稳定性的要求,一个合理的配置方案能够在保证性能的同时,优化成本,以下是服务器配置的核心基本要求:中央处理器 (CPU)CPU 是服务器的计算核心,决定了处理请求的速度和并发能力,核心数与线程数:核心数越多,能够同时处理的任务(并发量)越多,对……

    2026年7月13日
    2300
  • 本地Oracle数据库怎么配置?,服务器安装步骤是什么

    本地配置Oracle数据库服务器,核心路径是下载安装包→规划目录与监听→执行安装→用DBCA建库→验证连通性,其中Windows和Linux的关键差异在环境变量与内核参数,这篇文章直接帮你把每一步拆开,并标注出容易出现权限和字符集问题的坑,按顺序操作基本能一次跑通,本地配置oracle数据库服务器前,先想清楚这……

    程序编程 2026年11月5日
    100
  • 怎么查看我的世界PE服务器IP地址,我的世界PE服务器地址查询方法

    《我的世界》PE版(基岩版手机端)里没有直接显示已连接服务器IP的按钮,要看IP得从加入服务器前的来源、抓包工具或服务端控制台三个方向入手,为什么我的世界手机版不直接显示服务器IP基岩版在添加服务器时,只要求填“服务器名称”和“服务器地址”,一旦连接成功,玩家在好友列表或服务器列表里能看到的是名称、延迟和在线人……

    2026年9月23日
    000
  • 服务器cpu过负荷怎么办,服务器cpu负载过高如何解决

    服务器CPU过负荷会直接导致业务中断、响应延迟甚至系统崩溃,必须立即排查根源并实施流量控制或资源扩容,这是保障业务连续性的核心原则,当CPU使用率持续飙升至90%以上且长时间无法自动回落时,系统已处于极度危险的临界状态,任何微小的额外请求都可能成为压垮服务的最后一根稻草,解决这一问题的关键在于快速定位“消耗源……

    2026年4月11日
    9300
  • aspx漏洞检测工具哪个好用?2026热门漏洞扫描工具推荐

    ASPX漏洞检测工具:守护.NET应用安全的专业之盾ASPX漏洞检测工具是专门针对基于ASP.NET框架开发的Web应用程序进行安全漏洞扫描与识别的专业软件或平台,它通过自动化技术模拟攻击行为,深度分析ASPX页面、后端C#/VB.NET代码、Web.config配置及数据库交互等环节,精准识别SQL注入、跨站……

    2026年2月6日
    11800
  • Oracle数据库服务器配置怎么做,需要注意什么?

    配置一台Oracle数据库服务器,核心是围绕CPU、内存、存储和操作系统进行精确匹配,根据业务负载和预算选择合理的硬件方案,并遵循Oracle最佳实践进行安装与调优,解读Oracle数据库服务器配置的核心要素配置Oracle数据库服务器不能简单堆砌硬件,需要理解数据库对资源的消耗特点,Oracle数据库主要消耗……

    2026年8月21日
    1500
  • 三星S8软件更新连不上服务器是什么原因?,怎么解决

    三星S8软件更新连接不到服务器,多数情况下不是手机坏了,而是系统时间、网络解析和旧组件校验三者之间出了冲突,挨个排除后基本都能解决,S8作为几年前的旗舰机型,系统更新机制还停留在老的OTA框架上,这两年三星陆续调整了服务器端校验策略,老设备在握手阶段更容易被拦下来,下面直接拆解原因和操作,为什么S8会在更新这一……

    程序编程 2026年10月23日
    400
  • 西安高防服务器租用该怎么对比选择,哪家性价比高?

    选西安高防服务器租用,核心对比五个维度:防御真实能力、机房线路质量、价格与带宽配比、售后响应速度、IDC合规资质,把这五点掰开揉碎,基本不会踩坑,防御能力:别只看数字,要看清洗方式和响应延迟高防服务器最怕“标称防御高,实际一打就死”,西安本地机房和异地高防机房在防御实现上差异不小,你需要让服务商提供测试IP,自……

    2026年9月24日
    100
  • ajax请求json数据报错怎么办?ajax跨域请求json数据

    Ajax请求JSON数据的核心在于利用JavaScript的XMLHttpRequest对象或Fetch API异步获取服务器返回的JSON格式数据,从而实现页面局部刷新而不需要重载整个网页,在现代Web开发中,前后端分离已成为行业共识,开发者不再依赖传统的页面跳转来展示信息,而是通过JavaScript在后台……

    2026年5月31日
    3700
  • dnf连接服务器失败一直上不去怎么办,怎么解决

    DNF一直连接服务器失败,通常是因为本地网络波动、DNS缓存问题、客户端文件损坏或服务器维护,建议先重启路由器和电脑,再尝试使用网络重置命令和更换DNS,如果仍不行,检查官网公告确认服务器状态,DNF连接服务器失败解决方法:三步排查网络根源区分服务器故障与本地问题遇到连接失败,先别急着折腾自己的电脑,打开DNF……

    2026年7月29日
    500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注