当前位置: 首页 > article >正文

将本地项目上传到 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
# 进入项目目录
cd /path/to/your/project

# 初始化 Git 仓库
git init

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

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

确保暂存区干净:

git status  # 确认无未提交的修改

3. 关联远程仓库

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

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

或使用 HTTPS:

git remote add origin https://gitlab.com/your-username/your-project.git
验证远程仓库
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

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

5. 处理常见问题

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

报错示例:

! [rejected] main -> main (non-fast-forward)

解决方案

  1. 拉取远程仓库并合并:
    git pull origin main --allow-unrelated-histories
    
  2. 解决冲突后重新推送:
    git push -u origin main
    
问题 2:权限不足(SSH 配置)

报错示例:

Permission denied (publickey).

解决方案

  1. 生成 SSH 密钥:
    ssh-keygen -t ed25519 -C "your-email@example.com"
    
  2. 将公钥 ~/.ssh/id_ed25519.pub 添加到 GitLab:
    • 进入 GitLab → SettingsSSH Keys → 粘贴公钥。

完整操作示例

# 初始化项目
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)。


http://www.kler.cn/a/518959.html

相关文章:

  • python 统计相同像素值个数
  • Synology 群辉NAS安装(4)docker-compose
  • Word 中实现方框内点击自动打 √ ☑
  • vscode环境中用仓颉语言开发时调出覆盖率的方法
  • 【2025年数学建模美赛E题】(农业生态系统)完整解析+模型代码+论文
  • Typesrcipt泛型约束详细解读
  • 基于 Bash 脚本的系统信息定时收集方案
  • 机器学习-使用梯度下降最小化均方误差
  • 数据库的JOIN连接查询算法
  • BUUCTF_Web( XSS COURSE 1)xss
  • golang 编程规范 - Effective Go 中文
  • 【C】memory 详解
  • 了解网络编程
  • 【面试】如何自我介绍?
  • 基于Docker的Spark分布式集群
  • 深度学习-97-大语言模型LLM之基于langchain的实体记忆和知识图谱记忆
  • 2024年AI多极竞争:技术创新与商业突破
  • 深入理解 JavaScript 对象字面量:创建对象的简洁方法
  • 如何使用 pytest-html 创建自定义 HTML 测试报告
  • 百度“秒哒”能开始内测了?李彦宏:假!
  • [JavaScript] 面向对象编程
  • mysql之group by语句
  • [RoarCTF 2019]Easy Calc1
  • 【例51.3】 平移数据
  • 头歌实训作业 算法设计与分析-动态规划(第1关:0/1背包问题)
  • 【Python】第四弹---深入理解Python控制流:从顺序到循环的全面解析