上传WSL项目到gitlab

上传WSL项目到gitlab

设置ssh

Gitlab添加SSH KEY

什么是SSH ?

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

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

python 复制代码
# 找到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中。

python 复制代码
# 确保SSH密钥已加载
ssh-add -l


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

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

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

将WSL上的代码上传到gitlab

确保在WSL环境中安装了git

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

python 复制代码
sudo apt update
sudo apt install git

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

创建GitLab仓库

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

从WSL上传代码

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

比如我想把我的TEXTurePaper文件夹下的所有文件都上传

初始化一个新的Git仓库。

python 复制代码
git init
  1. 添加所有文件到新的Git仓库
python 复制代码
git add .

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

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

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

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

python 复制代码
git remote add origin <Copied-URL>

例如:

python 复制代码
# 使用HTTPS
git remote add origin https://gitlab.com/username/project.git

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

python 复制代码
# 使用SSH
git remote add origin git@gitlab.com:username/project.git
  1. 推送代码到GitLab
python 复制代码
# git push -u origin master
git push -u origin main

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

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

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

可能遇到的各种错误

python 复制代码
(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仓库中使用同一名称和邮箱,您可以运行以下命令:

python 复制代码
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

选择2:

设置仓库级别的用户名和邮箱

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

python 复制代码
git config user.email "you@example.com"
git config user.name "Your Name"

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

提交代码

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

python 复制代码
git commit -m "Initial commit"

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

python 复制代码
(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:

python 复制代码
git remote -v

删除现有的origin

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

python 复制代码
git remote remove origin
# 或者使用
git remote rm origin

添加新的origin

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

python 复制代码
git remote add origin https://git.gxar.com/demo/TEXTure.git

或者,直接更改origin的URL

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

python 复制代码
git remote set-url origin https://git.gxar.com/demo/TEXTure.git

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

python 复制代码
(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)。你可以使用下面的命令来查看所有的分支:

python 复制代码
git branch
python 复制代码
(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 首先,使用以下命令查看当前的远程仓库设置:

python 复制代码
git remote -v

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

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

python 复制代码
git remote remove origin

c 最后,添加新的 origin:

python 复制代码
git remote add origin git@git.gxar.com:demo/TEXTure.git

选项二:使用不同的名字

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

python 复制代码
git remote add new_origin git@git.gxar.com:demo/TEXTure.git

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

例如:

python 复制代码
git push -u new_origin main

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

python 复制代码
(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>命令来添加它们。例如:

python 复制代码
git add myfile.txt

或添加所有改动:

python 复制代码
git add .

然后尝试再次提交:

python 复制代码
git commit -m "Your commit message"

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

python 复制代码
git status

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

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

  1. 使用SSH URL!!!
    我他妈之前一直是使用的HHTPS,我还以为是用的SSH:
python 复制代码
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:

python 复制代码
git remote set-url origin git@git.gxar.com:demo/demo-texture.git

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

相关推荐
Nejosi_念旧4 天前
开发常用工具
flutter·vue·gitlab·postman
yaoshengting5 天前
GitLab集成Jira
gitlab·jira
mrhaoxiaojun7 天前
gitlab runner正常连接 提示 作业挂起中,等待进入队列 解决办法
gitlab
铜锣烧1号7 天前
【学习笔记】GitLab 使用技巧和说明和配置和使用方法
git·python·pycharm·gitlab
极小狐7 天前
如何在 Rocky Linux 上安装极狐GitLab?
gitlab·devsecops·devops·极狐gitlab·安全合规
ihengshuai8 天前
Gitlab搭建npm仓库
前端·docker·npm·gitlab
Channing Lewis9 天前
在使用 GitLab API 时,如果只能获取少量的 Merge Request(MR)信息,而没有完整的数据
gitlab·mr
Channing Lewis9 天前
如何查看gitlab mr labels 添加和删除的历史
gitlab·mr
ihengshuai9 天前
Gitlab流水线配置
前端·docker·gitlab·devops
阿里云云原生9 天前
GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效
阿里云·云原生·gitlab