热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Git配置SSH及通过IDEA连接GitLab方法总结

Git配置SSH及通过IDEA连接GitLab方法总结写在前面:还记得大学毕业来到公司那一阵子,老大叫我配置

Git配置SSH及通过IDEA连接GitLab方法总结


写在前面:
还记得大学毕业来到公司那一阵子,老大叫我配置Git环境,并且通过SSH连接GitLab来上传和拉取代码。当时我整了一个下午还是没能配置好。一个方面是自己能力实在是太差了,另一个方面是网上有些方法都比较乱、不够详细。前几天我的Git工具出现了莫名其妙的错误(能够拉取新代码、当时上传代码却失败了),于是我重新配置了SSH。后面决定写一篇博客来记录一下。
开始配置
1、下载并且安装git
2、第一次配置SSH
(1)打开Git Bash,若是首次安装使用git,先配置用户名称和邮箱

git config --global user.name "姓名"
git config --global user.email "邮箱地址"

  • 1
  • 2

如果不是首次使用git,那么可以先查看自己的用户名以及邮箱:

git config user.name
git config user.email

  • 1
  • 2

(2)生成密钥

ssh-keygen -t rsa -C "你的邮箱地址"

  • 1

默认路径及生成的文件如下:
在这里插入图片描述
(3)用笔记本打开id_rsa.pub,并且复制里面的密钥
(4)打开GitLab,点击右上角的那个人物头像–点击Settings,出现下面的页面,点击SSH Keys,并且把(3)中复制过来的密钥粘贴
在这里插入图片描述在这里插入图片描述(5)打开IDEA,并且下载IDEA插件GitLab Projects(不会安装IDEA插件的自动百度),安装完成后如图:

在这里插入图片描述(6)在IDEA中新增SSH。首先点击Version Control—>GitLab–>Add New GitLab Server(具体可以参照上面和下图)
在这里插入图片描述
在这里插入图片描述GitLab中Token获取的方法
在这里插入图片描述现在SSH的配置、IDEA配置GitLab已经配置成功了。
(7)再补充一下,代码的上传和拉取吧
上传:
鼠标右击项目–>Get–>add–>Commit Directory—>输入Commit Message–>Commit and Push—>Push–>上传成功
拉取新代码:
直接通过这个图标拉取代码
在这里插入图片描述


最后补充一下最近发现的问题

在这里插入图片描述问题产生的导火线:IDEA弹出GitLab用户名和邮箱的输入框,估计是校验过时了,所以需要重新校验一次。当时我正忙着开发,就凭记忆输入了用户名和邮箱,结果输入的信息不正确,导致IDEA只能拉取到最新的代码却不能上传。
(1)问题分析
首先,我想到的是应该是SSH配置失效了,后面直接上GitLab上面配置SSH以后,发现好像SSH默认的失效时间是很长的,几乎都是10年以上,所以这个想法的可能性太低了;
其次,因为太懒了,懒得重新配置SSH(虽然配置很简单)。我这次想到的是可能是GitLab Project这个插件出现了问题。后面就重新安装插件,问题还是没有解决。
然后,我尝试着再次从GitLab上面拉取代码(git clone 一下),结果发现还是没能解决问题。这一步也是我最致命的一步(在脑子里面反应就是重新git clone代码是不能解决问题的!!!)
再然后,我请求我老大帮忙,我老大说,你直接用命令行提交看看,如果还是不行,说明是你的环境有问题。可是我对Git命令不熟悉啊,后面通过百度终于发现了有用的命令(网上命令太多,不敢轻易使用,万一出现问题,那可麻烦了):
先看看状态

git status

  • 1

提交

git push origin dev_2.9.0

  • 1

结果发现了我的问题:正如导火线上面所说的,我输入的信息不对,所以造成了这个问题。
(2)解决问题
1)重置用户名和邮箱
2)重新生成SSH
3)IDEA配置GitLab


再次出现坑

我配置的邮箱是根据GitLab上面的邮箱(后缀名是ldap)进行配置的,然而我们公司真正使用的是.com或者.cn的后缀的邮箱。我又在这个坑里面徘徊了一段时间。后来听到我同事说我们公司说,我才反应过来。后面又重新配置了一次环境。本来以为这个能成功。结果又发现了问题。


再次出现坑

反复检查了环境配置,发现环境是对的呀,拉取代码也是能够拉取的。当时为啥上传的时候上传不了呢???突然感觉刚刚做的事情白白做了!!!绝望啊。我在之前拉取的项目下面反复刷新代码,还是不行。我没有重新git clone的原因是,在此之前我已经认为git clone项目下来没用的了!看上面的问题分析第三点,如图:
在这里插入图片描述


解决问题

重新从GitLab上面 git clone项目下来,天啊。然后激动的重新尝试提交代码,终于提交成功了;

问题分析Token问题
假设之前的用户名(也就是IDEA还没弹框叫我重新输入用户名以及邮箱的时候)是“zhangsan",在弹出框弹出后我输入的用户名是xiaosan。因为如果不重新git clone 代码的话,这个项目代码还是之前的那个用户名所拉取的代码,能够拉取新代码的原因是IDEA里面还存在的之前的token。再提交代码失败,因为IDEA里面存着的用户名和邮箱与我们通过Git设置的用户名和邮箱不匹配。

新姿势
(1)通过Git命令修改用户名和邮箱
(2)新配置SSH
(3)重新git clone代码

https://blog.csdn.net/qq_37606901/article/details/103324509



推荐阅读
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • Git管理工具SourceTree安装与使用指南
    本文详细介绍了Git管理工具SourceTree的安装、配置及团队协作方案,旨在帮助开发者更高效地进行版本控制和项目管理。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • 本文详细介绍了 com.facebook.drawee.view.SimpleDraweeView 中的 setScaleType 方法,提供了多个实际代码示例,并解释了其在不同场景下的应用。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 本文详细介绍如何在Linux系统中配置SSH密钥对,以实现从一台主机到另一台主机的无密码登录。内容涵盖密钥对生成、公钥分发及权限设置等关键步骤。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
author-avatar
突击者
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有