Git 和 TortoiseGit 安装和配置(图文详解)

使用git,需要在Windows上需要安装两个软件:1)Git  2)TortoiseGit

若需要,可以下载TortoiseGit汉化语言包。

注意tortoiseGit是在安装了Git的基础上运行的所以需要先安装Git,后安装运行tortoiseGit

因为,运行TortoiseGit时需要选择git.exe路径,而git.exe是正确安装Git的产物。

一. Git安装

        Git是一个开源的分布式版本控制系统,旨在高效、快速地处理从小型到大型项目的版本管理。

官网地址:https://git-scm.com/download/win

安装步骤:中间配置选择根据开发环境决定(本人是交叉编译环境,但都是liunx环境:

linux X86 + Linux arm,不涉及跨平台,故选择3没有影响),其余next默认即可。

        此配置通常涉及到如何处理文本文件的换行符(line endings)。以下是针对这三种选项的详细解释:

1. Checkout Windows-style, commit Unix-style line endings(签出CRLF, 提交签入是LF)

  • 签出(Checkout): 当从Git仓库中检出文件到本地工作目录时,Git会将Unix风格的换行符(LF)转换为Windows风格的换行符(CRLF)。这是为了在Windows系统上保持文本文件的一致性,因为Windows系统通常使用CRLF作为换行符。
  • 提交(Commit): 当向Git仓库提交文件时,Git会将Windows风格的换行符(CRLF)转换回Unix风格的换行符(LF)。这是因为Git仓库中的文件通常以Unix风格存储,以确保跨平台的一致性。

2. Checkout as-is, commit Unix-style line endings(签出CR, 提交签入是LF)

  • 签出(Checkout): 不对检出的文件进行换行符转换,保持文件在Git仓库中的原始格式。这意味着如果你在Unix系统上提交了一个文件,然后在Windows系统上检出,你将看到Unix风格的换行符(LF)。
  • 提交(Commit): 当向Git仓库提交文件时,Git会将文件转换为Unix风格的换行符(LF)。这是为了确保Git仓库中的文件跨平台一致。

3. Checkout as-is, commit as-is line endings(签出CR, 提交签入是CR)

  • 签出(Checkout): 不对检出的文件进行换行符转换,保持文件在Git仓库中的原始格式。
  • 提交(Commit): 当向Git仓库提交文件时,不进行任何换行符转换,直接提交文件的当前格式。这通常不是推荐的做法,因为它可能导致跨平台的不一致性问题。

总结

  • 跨平台项目: 如果你正在参与一个跨平台的项目(例如,团队成员使用不同的操作系统),通常建议选择“Checkout Windows-style, commit Unix-style line endings”。这样可以确保在Windows系统上正常显示文件,同时在Git仓库中保持Unix风格的换行符。
  • 非跨平台项目: 如果你的项目仅针对特定操作系统(例如,仅针对Windows或Unix/Linux),你可以选择“Checkout as-is, commit Unix-style line endings”或根据需要进行调整。
  • 注意: Git仓库中的文件通常以Unix风格的换行符(LF)存储,这是为了确保跨平台的一致性。在检出文件到本地工作目录时,Git会根据操作系统的不同自动进行换行符的转换(如果配置了相应的选项)。

二. TortoiseGit安装和配置

        TortoiseGit是一款专为Windows系统设计的Git版本控制客户端工具,它为用户提供了直观、友好的图形界面,使得Git的操作更加容易理解和使用。无论是初学者还是有经验的开发人员,都可以借助TortoiseGit提高工作效率,更好地管理和维护代码库。

        官网下载地址:https://tortoisegit.org/download/

        根据需要可以下载对应版面的语言包:

        注意:语言包安装需要在安装tortoiseGit之后

1. TortoiseGit安装

安装步骤:一路Next即可,配置均选择默认

注意:安装之后,选中Run first start wizard 以便进行初始设置,若没有选中,后续可以通过

右键->TortoiseGit->设置 进行初始设置。

2. 初始配置

1)若没有安装语言包,默认只有英文

        安装语言包:若先安装并初始化配置了TortoiseGit,再安装语言包时,需要勾选以下选项,这样可以直接应用语言包。 

 2)配置git.exe

3)配置用户名和邮箱

 4)其他默认,完成。结果如下:语言包已生效。

 

        到此时,Git已安装并做初始配置,但连接Gitlab,实现克隆、提交代码等功能还尚不可以。可以理解为:本地Git还未与远端Gitlab建立连接,所谓连接即:密钥配置

三. 密钥配置

1. 生成密钥文件

1)windows上找到  PuTTYgen点击Generate ,生成对应的密钥

注意:生成时鼠标要不停划过进度条,不然进度条会一直不动!

 2)点击“save private key”,将私钥保存到本地(文件名自己命名即可,后缀为ppk),记住存储的位置,后续连接Gitlab需要用私钥校验。

 2. Gitlab配置SSH Keys

 3. 查看windows pageant是否添加了对应的私钥。若没有则手动添加前面生成的private key.ppk,也就是私钥。

 四. 验证

进入本地项目代码保存的路径,右键-->TortoiseGit-->克隆

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql索引的实现原理,B+Tree,WAL

InnoDB 引擎,每一个数据表有两个文件 .frm和.ibd,分别为表结构,数据和索引,数据挂在主索引的叶子节点上,此主索引称为聚簇索引。 MyISAM 引擎,每一个数据表有三个文件.frm和.MYI和.MYD,分别为表…

深入理解计算机系统 CSAPP 家庭作业7.13

用一下496页提到的工具咯 A: whereis libm.a file lidm.a gedit libm.a libm.a是个ASCII text文件打开一看原来 libm-2.27.a 和libmvec.a才是我们要看的 所以我们cd到目标地址后 ar -t libm-2.27.a ar -t libmvec.a B: gcc -Og bar5.c foo5.c 用之前的两个文件链接后生成…

【CS.DS】数据结构 —— 图:深入了解三种表示方法之邻接表(Adjacency List)

文章目录 1 概念2 无向图的邻接表2.1 示例2.2 Mermaid 图示例2.3 C实现2.3.1 简单实现2.3.2 优化封装 2.4 总结 3 有向图的邻接表3.1 示例3.2 C实现3.3 总结 4 邻接图的遍历5 拓展补充References 数据结构 1 概念 优点:空间效率高,适合稀疏图。动态性强…

springboot 整合redis

文章目录 一、Jedis二、Lettuce三、RedisTemplate(重点)单机3.1 springboot 整合swagger3.2 序列化中文问题集群3.3 applications配置3.4 问题 一、Jedis package com.example.redis;import redis.clients.jedis.Jedis;import javax.print.DocFlavor; import java.util.*;/***…

【编译原理】绪论

1.计算机程序语言以及编译 编译是对高级语言的翻译 源程序是句子的集合,树可以较好的反应句子的结构 编译程序是一种翻译程序 2.编号器在语言处理系统中的位置 可重定位:在内存中存放的起始位置不是固定的 加载器:修改可重定位地址&#x…

古文字识别笔记

前置知识 部件:大部分的汉字是由若干组笔画结构拼合而成的,这些相对独立的笔画结构称为「部件」。 部件是大于基本笔画(例如:点、横、撇、捺等)而小于或等同于 偏旁 的结构单位。 例如「测」字有三个部件:…

【学习】使用PyTorch训练与评估自己的ResNet网络教程

参考:保姆级使用PyTorch训练与评估自己的ResNet网络教程_训练自己的图像分类网络resnet101 pytorch-CSDN博客 项目地址:GitHub - Fafa-DL/Awesome-Backbones: Integrate deep learning models for image classification | Backbone learning/comparison…

高效修复机床导轨磨损,保障加工精度!

机床导轨是支承和引导运动构件沿着一定轨迹运动的传动装置,在机器设备中是个十分重要的部件,在机床中是常见的部件。机床的加工精度与导轨精度有直接的联系,且导轨一旦损坏,维修较复杂且困难。我们简单总结了以下几点对于机床导轨…

编程设计思想

健康检查脚本 nmap:扫描端口 while true do healthycurl B:httpPORT/healthy -i | grep HTTP/1.1 | tail -n 1 | awk {print $2} done 批量操作类型脚本(记录每一步日志) 将100个nginx:vn推送到harbor仓库192.168.0.100 根据镜像对比sha值…

【开源项目】自然语言处理领域的明星项目推荐:Hugging Face Transformers

在当今人工智能与大数据飞速发展的时代,自然语言处理(NLP)已成为推动科技进步的重要力量。而在NLP领域,Hugging Face Transformers无疑是一个备受瞩目的开源项目。本文将从项目介绍、代码解释以及技术特点等角度,为您深…

面向对象修炼手册(四)(多态与空间分配)(Java宝典)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀面向对象修炼手册 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 前言 1 多态 1.1 多态的形式&…

需求之 实现获取调试信息在h5页面,在手机端可以查看调试(二)

事实证明 chatgpt很好用,有不懂的问题可以问它 https://zhuanlan.zhihu.com/p/690118775 国内外9个免费的ChatGPT网站 我筛选出来的比较好用免费的网站 fchat.dykyzdh.cn/ 这个也可以 阿里云的 通义灵码 在vscode中安装使用 而且阿里云有一个产品,可以…

面试-Java线程池

1.利用Excutors创建不同的线程池满足不同场景的需求 分析: 如果并发的请求的数量非常多,但每个线程执行的时间非常短,这样就会频繁的创建和销毁线程。如此一来,会大大降低系统的效率。 可能出现,服务器在为每个线程创建…

jdk1.8升级到jdk11遇到的各种问题

一、第三方依赖使用了BASE64Decoder 如果项目中使用了这个类 sun.misc.BASE64Decoder,就会导致错误,因为再jdk11中,该类已经被删除。 Caused by: java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder 当然这个类也有替换方式&#xf…

MySQL实训--原神数据库

原神数据库 er图DDL/DML语句查询语句存储过程/触发器 er图 DDL/DML语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;DROP TABLE IF EXISTS artifacts; CREATE TABLE artifacts (id int NOT NULL AUTO_INCREMENT,artifacts_name varchar(255) CHARACTER SET utf8 COLLATE …

一文搞懂Linux多线程【下】

目录 🚩多线程代码的健壮性 🚩多线程控制 🚩线程返回值问题 🚩关于Linux线程库 🚩对Linux线程简单的封装 在观看本博客之前,建议大家先看一文搞懂Linux多线程【上】由于上一篇博客篇幅太长,为…

文件操作<C语言>

导言 平时我们在写程序时,在运行时申请内存空间,运行完时内存空间被收回,如果想要持久化的保存,我们就可以使用文件,所以下文将要介绍一些在程序中完成一些文件操作。 目录 导言 文件流 文件指针 文件的打开与关闭 …

《黑神话悟空》电脑配置要求

《黑神话:悟空》这款国内优秀的3A游戏大作,拥有顶级的特效与故事剧情,自公布以来便备受玩家期待,其精美的画面与流畅的战斗体验,对玩家的电脑配置提出一定要求。那么这款优秀的游戏需要什么样的电脑配置,才…

记录:[android] SSLHandshakeException: Handshake failed 问题;已解决!

1、问题描述:在使用Retrofit2 时在安卓老设备上(安卓6.0)网络无法请求、安卓 10 、 11 未出现此问题?what? 原因:服务端 TLS 版本过高 2、废话不多说、解决方案A 、添加依赖:implementation org.conscrypt…

黑马苍穹外卖6 清理redis缓存+Spring Cache+购物车的增删改查

缓存菜品 后端服务都去查询数据库,对数据库访问压力增大。 解决方式:使用redis来缓存菜品,用内存比磁盘性能更高。 key :dish_分类id String key “dish_” categoryId; RestController("userDishController") RequestMapping…