将本地项目上传到 GitLab/GitHub

以下是将本地项目上传到 GitLab 的完整步骤,从创建仓库到推送代码的详细流程:


1. 在 GitLab 上创建新项目

  1. 登录 GitLab,点击 New project
  2. 选择 Create blank project
  3. 填写项目信息:
    • Project name : 项目名称(如 my-project)。
    • Visibility Level: 选择仓库可见性(公开/私有/内部)。
    • Initialize repository with a README : 不要勾选(避免推送冲突)。
  4. 点击 Create project,生成一个空仓库。

2. 准备本地项目

如果项目未初始化 Git
bash 复制代码
# 进入项目目录
cd /path/to/your/project

# 初始化 Git 仓库
git init

# 添加所有文件到暂存区
git add .

# 提交初始版本
git commit -m "Initial commit"
如果项目已是 Git 仓库

确保暂存区干净:

bash 复制代码
git status  # 确认无未提交的修改

3. 关联远程仓库

获取 GitLab 仓库的 URL(HTTPS 或 SSH):

  • HTTPS:适合临时使用,需每次输入账号密码。
  • SSH:推荐长期使用,需提前配置 SSH 密钥。
添加远程仓库地址
bash 复制代码
git remote add origin git@gitlab.com:your-username/your-project.git

或使用 HTTPS:

bash 复制代码
git remote add origin https://gitlab.com/your-username/your-project.git
验证远程仓库
bash 复制代码
git remote -v

应显示:

复制代码
origin  git@gitlab.com:your-username/your-project.git (fetch)
origin  git@gitlab.com:your-username/your-project.git (push)

4. 推送代码到 GitLab

首次推送(强制关联分支)
bash 复制代码
git push -u origin main
# 若本地分支名为 master,则改为:
# git push -u origin master
后续推送
bash 复制代码
git push

5. 处理常见问题

问题 1:远程仓库非空(如误勾选 README)

报错示例:

复制代码
! [rejected] main -> main (non-fast-forward)

解决方案

  1. 拉取远程仓库并合并:

    bash 复制代码
    git pull origin main --allow-unrelated-histories
  2. 解决冲突后重新推送:

    bash 复制代码
    git push -u origin main
问题 2:权限不足(SSH 配置)

报错示例:

复制代码
Permission denied (publickey).

解决方案

  1. 生成 SSH 密钥:

    bash 复制代码
    ssh-keygen -t ed25519 -C "your-email@example.com"
  2. 将公钥 ~/.ssh/id_ed25519.pub 添加到 GitLab:

    • 进入 GitLab → SettingsSSH Keys → 粘贴公钥。

完整操作示例

bash 复制代码
# 初始化项目
cd my-project
git init
git add .
git commit -m "Initial commit"

# 关联远程仓库
git remote add origin git@gitlab.com:your-username/my-project.git

# 推送代码
git push -u origin main

补充说明

  • 分支管理 :默认分支可能是 mainmaster,根据 GitLab 仓库设置调整。
  • 忽略文件 :建议创建 .gitignore 文件排除临时文件(如 node_modules/, .env 等)。
  • 协作权限 :私有项目需在 GitLab 中添加协作者(Settings → Members)。

相关推荐
领创工作室14 小时前
GitHub Workflows 全面解析:从核心概念到开源实现
运维·github
一条泥憨鱼16 小时前
【从0开始学习计算机网络】| DNS -记录类型详解
计算机网络·http·github·域名·dns·记录
u13013017 小时前
GitHub 热榜项目:日榜(2026-08-21)
驱动开发·github
MicrosoftReactor19 小时前
技术速递|GitHub Copilot App 入门指南:管理你的工作
ai·github·copilot·agent
阿里嘎多学长21 小时前
2026-08-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
小妖同学学AI21 小时前
AI视频生成难在提示词?这个Claude插件让Seedance 2.0效率翻倍,附超全示例!
人工智能·开源·github·音视频
Sayai1 天前
Elasticsearch 日志索引设计:按小时切分 + 小时内 Rollover 兜底(ILM 实战,附完整脚本)
大数据·elasticsearch·搜索引擎
Elasticsearch1 天前
生产环境向量搜索的一个设置:vectordb_document 模式如何自动调优 Elasticsearch
elasticsearch
Bioinfo Guy1 天前
DeepSeek Harness 最强的,可能不是模型,而是插件
github·skill·deepseek