将本地项目上传到 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)。

相关推荐
放学有种别跑、4 分钟前
GIT使用指南
大数据·linux·git·elasticsearch
天外飞雨1 小时前
把代码提交到github
github
happyCoder1 小时前
VS Code Git 神器:内置功能与GitLens插件使用技巧
git·github
越努力越幸运5081 小时前
git工具的学习
大数据·elasticsearch·搜索引擎
不会写程序的未来程序员1 小时前
详细的 Git 操作分步指南
大数据·git·elasticsearch
武子康2 小时前
大数据-167 ELK Elastic Stack(ELK) 实战:架构要点、索引与排错清单
大数据·后端·elasticsearch
lkbhua莱克瓦242 小时前
集合进阶8——Stream流
java·开发语言·笔记·github·stream流·学习方法·集合
20岁30年经验的码农3 小时前
Java Elasticsearch 实战指南
java·开发语言·elasticsearch
v***44674 小时前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
h***67378 小时前
SpringBoot整合easy-es
spring boot·后端·elasticsearch