上传WSL项目到gitlab

上传WSL项目到gitlab

  • 设置ssh
    • 将SSH公钥添加到Gitlab
  • 将WSL上的代码上传到gitlab
    • 确保在WSL环境中安装了git
    • 下面是上传代码到GitLab的具体步骤:
  • 可能遇到的各种错误

设置ssh

Gitlab添加SSH KEY

什么是SSH ?
SSH 是一种网络协议,具备协议级别的认证及会话管理等功能。另外在架设 SSH 服务方面,任何人都可以轻易地创建安全等级高的服务。相比而言 HTTP 协议则没有上述的特点。

在WSL(Windows Subsystem for Linux)中,SSH公钥通常存储在用户的~/.ssh目录下。具体的文件名通常是 id_rsa.pub(对于RSA密钥)或其他与使用的密钥算法有关的名称。

# 找到SSH公钥:您可以通过以下命令查找并显示您的SSH公钥
cat ~/.shh/id_rsa.pub
# 如果该命令返回“没有那个文件或目录”之类的消息,那么您可能还没有生成SSH密钥。

# 生成新的SSH密钥:如果您没有SSH密钥,您可以使用以下命令生成一个新的SSH密钥:
ssh-keygen -t rsa -b 4096
#一路按enter即可, 这通常会在~/.ssh目录下生成一个新的SSH密钥对(id_rsa和id_rsa.pub)。

# 添加到ssh-agent:确保ssh-agent正在运行,并将您的私钥添加到ssh-agent。您可以用以下命令来实现
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

# 查看SSH公钥
cat ~/.shh/id_rsa.pub

请注意,以上命令和文件路径假设您是在WSL中的Linux环境里运行这些操作,而不是在Windows环境里。在WSL中,您通常应该使用Linux的文件路径和命令。

一旦您找到或生成了SSH公钥,您就可以将其复制并粘贴到GitLab或其他远程Git服务中以完成身份验证。请确保您没有不小心包含多余的空格或换行符,这些都可能导致密钥无法正常工作。
在这里插入图片描述

将SSH公钥添加到Gitlab

用下图方式找到SSH Keys的位置
在这里插入图片描述

将cat ~/.shh/id_rsa.pub输出的内容复制,然后粘贴到Key的部分,可以生成如下的SSH Keys
在这里插入图片描述
确保SSH密钥已加载
在本地计算机上运行以下命令,以确保SSH密钥已经被加载到ssh-agent中。


# 确保SSH密钥已加载
ssh-add -l


# 测试SSH连接
ssh -T git@git.gxar.com
# 如果一切正常,您应该会看到一个欢迎消息

# 确保您有权限访问此仓库
#确保您的GitLab账户有权限访问您试图推送到的远程仓库。如果您没有权限,您将无法进行推送

# 检查远程仓库URL
git remote -v

在这里插入图片描述

将WSL上的代码上传到gitlab

确保在WSL环境中安装了git

如果尚未安装,您可以使用以下命令进行安装:

sudo apt update
sudo apt install git

下面是上传代码到GitLab的具体步骤:

创建GitLab仓库

  1. 登录到GitLab账户
  2. 点击"New project"创建新的代码仓库
  3. 输入项目名,可选的描述,然后选择项目的可见性
  4. 点击“Create project”

从WSL上传代码

  1. 初始化本地仓库
    在WSL中,打开你的代码所在目录。
cd path/to/your/project

比如我想把我的TEXTurePaper文件夹下的所有文件都上传
在这里插入图片描述
初始化一个新的Git仓库。

git init
  1. 添加所有文件到新的Git仓库
git add .

注意:这会添加当前目录和子目录中的所有文件。如果你只想添加特定文件或文件夹,可以指定它们(如:git add 或 git add <foldername>/)。

  1. 提交您的代码
git commit -m "Initial commit"

4.添加GitLab仓库为远程仓库

从GitLab项目页面复制“Clone with HTTPS”或“Clone with SSH”链接。

git remote add origin <Copied-URL>

例如:

# 使用HTTPS
git remote add origin https://gitlab.com/username/project.git

或如果你使用SSH这里建议使用SSH!!!

# 使用SSH
git remote add origin git@gitlab.com:username/project.git

  1. 推送代码到GitLab
# git push -u origin master
git push -u origin main

这将推送代码到GitLab上名为“main”的分支。

  1. 验证和完成
    打开GitLab,刷新项目页面,您应该能看到已上传的代码。

这样您就成功地从WSL环境上传了代码到GitLab。

可能遇到的各种错误

(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git commit -m "Initial commit"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: empty ident name (for <aaa@ASUS.localdomain>) not allowed

这个错误是因为Git需要知道提交是由谁进行的,所以它需要您设置全局或者针对当前仓库的用户名和邮箱地址。

这里是解决步骤:

选择1:
设置全局级别的用户名和邮箱(不建议!!!)
如果您希望在所有Git仓库中使用同一名称和邮箱,您可以运行以下命令:

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

选择2:

设置仓库级别的用户名和邮箱
如果您只想针对当前的Git仓库设置用户名和邮箱,您可以在同一命令中省略–global选项:

git config user.email "you@example.com"
git config user.name "Your Name"

同样地,将其中的"you@example.com"和"Your Name"替换成您的实际邮箱地址和姓名。

提交代码
完成这些设置后,您就可以再次尝试提交代码:

git commit -m "Initial commit"

这次应该不会出现之前的错误信息了。然后,您可以继续之前的步骤,将代码推送到GitLab。

(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git remote add origin https://git.gxar.com/demo/TEXTure.git
fatal: remote origin already exists.

这个错误表示在当前Git仓库中,已经存在名为 origin 的远程仓库。如果你确定要用新的URL替换现有的origin,可以先删除旧的,然后添加新的。

查看现有的远程仓库
首先,你可以查看所有关联的远程仓库以及它们的URL:

git remote -v

删除现有的origin
如果你确定要替换,可以先删除现有的origin:

git remote remove origin
# 或者使用
git remote rm origin

添加新的origin
然后,你就可以使用新的URL添加origin了:

git remote add origin https://git.gxar.com/demo/TEXTure.git

或者,直接更改origin的URL
如果你不想删除现有的origin,也可以直接更新其URL:

git remote set-url origin https://git.gxar.com/demo/TEXTure.git

这样,你就成功地更改了远程仓库的URL。之后,你可以继续推送代码到新设置的origin。

(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git push -u origin master
error: src refspec master does not match any
error: failed to push some refs to 'https://git.gxar.com/demo/TEXTure.git'

检查当前分支
首先,确保你在你想推送的分支上(通常是master或者main)。你可以使用下面的命令来查看所有的分支:

git branch

在这里插入图片描述

(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git remote add origin git@git.gxar.com:demo/TEXTure.git
fatal: remote origin already exists.

这个错误表明一个名为 origin 的远程仓库已经存在在您的本地Git配置中。如果您想添加一个新的远程仓库并将其命名为 origin,您有两个选项:

选项一:删除旧的远程仓库
a 首先,使用以下命令查看当前的远程仓库设置:

git remote -v

这会列出所有远程仓库以及它们的URL。

b 然后,使用以下命令删除已有的 origin:

git remote remove origin

c 最后,添加新的 origin:

git remote add origin git@git.gxar.com:demo/TEXTure.git

选项二:使用不同的名字
如果您不想删除旧的 origin,您可以选择一个不同的名字为您的新远程仓库。

git remote add new_origin git@git.gxar.com:demo/TEXTure.git

之后,您可以使用这个新的名字(new_origin)来进行 push、pull 等操作。

例如:

git push -u new_origin main

选择一个方案后,按照对应的步骤进行,应该就可以解决您的问题。


(base) aaa@ASUS:~/ML/paper/TEXTurePaper$ git commit -m "Initial commit"
On branch main
nothing to commit, working tree clean

这个消息表示在您尝试进行Git提交(commit)时,Git没有发现任何未提交(uncommitted)的改动。换句话说,您的工作目录是“干净的”,意味着您没有进行任何改变,或者您已经将所有改动添加(staged)并提交(committed)了。

这里有几种可能的情况:

没有新文件或改动:如果您刚刚初始化了一个新的Git仓库,或者没有做出任何改变,那么Git自然没有任何内容可以提交。

改动已经被提交:如果您之前已经添加并提交了所有改动,那么工作目录也会是干净的。

如何解决
如果您确实有需要提交的新文件或改动,确保首先使用git add <file>命令来添加它们。例如:

git add myfile.txt

或添加所有改动:

git add .

然后尝试再次提交:

git commit -m "Your commit message"

如果您不确定是否有任何未添加或未提交的改动,您可以使用以下命令查看:

git status

这将显示所有未添加(unstaged)或未提交(uncommitted)的改动。

如果git status显示您的工作树是干净的,但您确信应该有一些改动需要提交,那么您可能在错误的目录或分支中。确保您处于正确的工作目录并且已经切换到了包含您改动的分支。

  1. 使用SSH URL!!!
    我他妈之前一直是使用的HHTPS,我还以为是用的SSH:
git remote add origin https://git.gxar.com/demo/demo-texture.git我使用的是这个,这个应该是SSH吧

实际上,上面使用的URL https://git.gxar.com/demo/demo-texture.git 是一个HTTPS URL,而不是SSH URL。

HTTPS和SSH是两种不同的协议,用于与远程Git仓库进行通信:

HTTPS URL 通常看起来像这样: https://<hostname>/<user>/<repository>.git。
SSH URL 通常看起来像这样: git@<hostname>:<user>/<repository>.git。
如果您想使用SSH,您需要找到SSH形式的Git仓库URL。这通常可以在GitLab仓库的“Clone”或“Clone Repository”部分找到。

在找到SSH URL后,您可以使用以下命令更改远程仓库的URL:

git remote set-url origin git@git.gxar.com:demo/demo-texture.git

注意:在使用SSH之前,确保您已生成SSH密钥并添加到GitLab账户,还要确保SSH agent运行并已加载了您的SSH密钥。这些步骤对于SSH身份验证是必要的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/95469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【【萌新的STM32学习-19-蜂鸣器实验】】

萌新的STM32学习-19-蜂鸣器实验 STM32在正点原子的视频中并未讲述关于蜂鸣器的实验&#xff0c;我们自己探究一下作为简单的HAL库入门 蜂鸣器每隔 300ms 响或者停一次。LED0 每隔 300ms 亮或者灭一次。LED0 亮的时候蜂鸣器不叫&#xff0c;而 LED0 熄灭的时候&#xff0c;蜂鸣…

【Interaction交互模块】AngularJointDrive角度关节驱动

文章目录 一、预设体位置二、案例&#xff1a;做一个“能开合的门” 1、在已建好的门框下&#xff0c;建门 2、设置参数 3、解决产生的问题 一、预设体位置 交互模块——可控制物体——物理关节——角度关节驱动 二、案例&#xff1a;做一个“能开合的门” 1…

2023常见前端面试题

以下是一些2023年秋招常见的前端面试题及其答案&#xff1a; 1. 请解释一下什么是前端开发&#xff1f; 前端开发是指使用HTML、CSS和JavaScript等技术来构建网页和用户界面的过程。前端开发人员负责将设计师提供的视觉设计转化为可交互的网页&#xff0c;并确保网页在不同设备…

xsschallenge1~13通关详细教程

文章目录 XSS 挑战靶场通关level1level2level3level4level5level6level7level8level9level10level11level12level13 XSS 挑战靶场通关 level1 通过观察发现这个用户信息可以修改 那么我们直接输入攻击代码 <script>alert(/wuhu/)</script>弹框如下&#xff1a; …

树与图c++

1.树 前言 本文主要介绍的数据结构之树型结构的相关知识&#xff0c;树型数据结构是面试官面试的时候非常喜欢考的一种数据结构&#xff0c;树形结构的遍历也是大厂笔试非常喜欢设置的考点&#xff0c;这些内容都会在本篇文章中进行详细的介绍&#xff0c;并且还会介绍一些常…

线程安全-搞清synchronized的真面目

多线程编程中&#xff0c;最难的地方&#xff0c;也是最重要的一个地方&#xff0c;还是一个最容易出错的地方&#xff0c;更是一个特别爱考的地方&#xff0c;就是线程安全问题。 万恶之源&#xff0c;罪魁祸首&#xff0c;多线程的抢占式执行,带来的随机性. 如果没有多线程,此…

【VRRP】虚拟路由冗余协议

什么是VRRP&#xff1f; 虚拟路由冗余协议VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;是一种用于提高网络可靠性的容错协议。通过VRRP&#xff0c;可以在主机的下一跳设备出现故障时&#xff0c;及时将业务切换到备份设备&#xff0c;从而保障网络通信的…

Redis基础知识

Redis基础知识 redis共有16个数据库&#xff0c;默认使用的是第0个 可以使用select进行切换数据库 # 切换数据库 127.0.0.1:6379> select 1 OK # 查看DB大小 127.0.0.1:6379[1]> DBSIZE (integer) 0查看当前数据库所有的key 127.0.0.1:6379> keys * #查看当前数据…

Mybatis查询数据

上一篇我们介绍了在pom文件中引入mybatis依赖&#xff0c;配置了mybatis配置文件&#xff0c;通过读取配置文件创建了会话工厂&#xff0c;使用会话工厂创建会话获取连接对象读取到了数据库的基本信息。 如果您需要对上面的内容进行了解&#xff0c;可以参考Mybatis引入与使用…

【业务功能篇87】微服务-springcloud-本地缓存-redis-分布式缓存-缓存穿透-雪崩-击穿

一、缓存 1. 什么是缓存 缓存的作用是减低对数据源的访问频率。从而提高我们系统的性能。 缓存的流程图 2.缓存的分类 2.1 本地缓存 其实就是把缓存数据存储在内存中(Map <String,Object>).在单体架构中肯定没有问题。 单体架构下的缓存处理 2.2 分布式缓存 在分布式环…

Java学习笔记31——字符流

字符流 字符流为什么出现字符流编码表字符串中的编码解码问题字符流写数据的5中方式字符流读数据的两种方式字符流复制Java文件 字符流 为什么出现字符流 汉字的存储如果是GBK编码占用2个字节&#xff0c;如果是UTF-8占用三个字节 用字节流复制文本文件时&#xff0c;文本文…

2023年腾讯云轻量应用服务器优缺点大全

2023年腾讯云轻量应用服务器优缺点大全&#xff0c;腾讯云轻量应用服务器性能如何&#xff1f;轻量服务器CPU内存带宽配置高&#xff0c;CPU采用什么型号主频多少&#xff1f;轻量应用服务器会不会比云服务器CVM性能差&#xff1f;腾讯云服务器网详解CPU型号主频、内存、公网带…

Linux通过libudev获取挂载路径、监控U盘热拔插事件、U盘文件系统类型

文章目录 获取挂载路径监控U盘热拔插事件libusb 文件系统类型通过挂载点获取挂载路径添libudev加库 获取挂载路径 #include <stdio.h> #include <libudev.h> #include <string.h>int main() {struct udev *udev;struct udev_enumerate *enumerate;struct ud…

数据库备份和Shell基础测试及AWK(运维)

第一题&#xff1a;简述一下如何用mysql命令进行备份和恢复&#xff0c;请以test库为例&#xff0c;创建一个备份&#xff0c;并再用此备份恢复备份 备份步骤&#xff1a; 备份test库&#xff1a;使用mysqldump命令备份test库&#xff0c;并将备份写入一个.sql文件中。命令示例…

【第1章 数据结构概述】

目录 一. 基本概念 1. 数据、数据元素、数据对象 2. 数据结构 二. 数据结构的分类 1. 数据的逻辑结构可分为两大类&#xff1a;a. 线性结构&#xff1b;b. 非线性结构 2. 数据的存储结构取决于四种基本的存储方法&#xff1a;顺序存储、链接存储、索引存储、散列存储 3. …

【力扣每日一题】2023.8.24 统计参与通信的服务器

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目顾名思义&#xff0c;要我们统计参与通信的服务器&#xff0c;给我们一个二维矩阵&#xff0c;元素为1的位置则表示是一台服务器。 …

学习Linux基础知识与命令行操作

开始学习Linux系统前&#xff0c;首先要掌握计算机基础知识&#xff0c;了解硬件、操作系统、文件系统、网络和安全等概念。对这些基础知识的了解能够帮助理解Linux系统的概念和功能。 在Linux系统中&#xff0c;文件和目录是数据管理的基本单位。每个文件和目录都有一个称为&…

OAuth2.0 知识点梳理

文章目录 OAuth2.0 知识点梳理一、四种角色二、四种模式的概述三、四种模式的图解 OAuth2.0 知识点梳理 一、四种角色 为了能够更好的理解本文中后续的内容&#xff0c;这里我先说下&#xff0c;OAuth2.0 中相关的四种角色&#xff0c;如下&#xff1a; 资源拥有者资源服务客…

内网实战1

1、信息收集&#xff1a; 使用nmap做端口扫描&#xff1a; nmap -sV -Pn -T4 192.168.26.174重要端口&#xff1a;80、445、139、135、3306 目录扫描&#xff1a; 访问80端口&#xff1a;发现一个网站是phpstudy搭建的&#xff1b; 发现一个mysql数据库&#xff0c;那我们…

[QT]设置程序仅打开一个,再打开就唤醒已打开程序的窗口

需求&#xff1a;speedcrunch 这个软件是开源的计算器软件。配合launch类软件使用时&#xff0c;忘记关闭就经常很多窗口&#xff0c;强迫症&#xff0c;从网上搜索对版本进行了修改。 #include "gui/mainwindow.h"#include <QCoreApplication> #include <…