本文为windows下git的下载安装和使用。
git下载和安装
参考:
windows安装git(全网最详细,保姆教程)-CSDN博客
【学了就忘】Git介绍 — 4.Git的安装 - 简书
先解决下载时的一些疑惑:
选择哪个架构?
电脑ARM64和X64的区别
在计算机科学和硬件设计领域,ARM64和X64是两种重要的处理器架构。它们在设计理念、应用场景、性能和能效方面有着显著的区别。
架构设计哲学
X64架构,也被称为AMD64或Intel 64,是对经典的32位x86指令集架构(ISA)的扩展。它遵循**复杂指令集计算(CISC)**设计原则,设计有复杂的指令,可以执行多步操作。这种设计初衷是为了减少编译器的工作量,直接在硬件层面实现复杂的操作。然而,这也使得X64处理器的设计和实现更加复杂,消耗更多的电力,并且在某些情况下降低了处理速度(1)。
ARM64,亦称为AArch64,是ARM架构的64位版本,由ARM Holdings设计。它遵循**精简指令集计算(RISC)**原则,强调使用较少、更简单的指令集来执行操作。这种方法旨在通过提高指令的执行速度来提升性能,同时降低处理器的能耗和成本(2)。
应用和生态系统
X64架构长期以来一直是桌面计算机和服务器的主导架构,得益于其与旧x86应用程序的兼容性,以及其在处理高性能计算任务方面的能力。这意味着,对于运行复杂的桌面操作系统、大型数据库和高端游戏等,X64提供了强大的支持(1)。
ARM64由于其出色的能效比和对低功耗的优化,主要用于智能手机、平板电脑、嵌入式系统和轻薄笔记本电脑。近年来,随着Apple推出基于ARM64的M1芯片,以及微软和Qualcomm合作开发的Windows on ARM项目,ARM64架构开始进入高性能计算和桌面计算领域,挑战X64的主导地位(2)。
性能与能效
由于设计哲学和应用场景的不同,X64和ARM64在性能与能效方面存在显著差异。X64处理器通常提供更高的计算性能,特别是在需要大量数据处理和复杂计算的任务中,如图形渲染、科学计算和服务器应用。然而,这种性能是以更高的能耗为代价的(2)。
相比之下,ARM64架构的处理器在保持合理性能的同时,显著降低了能耗。这不仅使得ARM64设备在续航方面表现更好,而且还减少了散热需求,允许制造更轻薄的设备(2)。
结论
尽管X64和ARM64都是现代计算设备中极为重要的处理器架构,但它们在设计理念、应用场景、性能和能效方面有着根本的区别。X64优于处理复杂的计算任务和高性能需求,而ARM64在移动设备和高能效要求的场景中占据优势。随着技术的发展和市场需求的变化,这两种架构都在不断进化,以满足不断扩大的应用领域和性能需求。
怎么查看自己的电脑是什么架构的?
其实很简单,只需要一个命令即可。
在cmd命令窗中输入systeminfo即可,如下图:
x64为主流
目前主流的桌面电脑(包括台式机和笔记本电脑)绝大多数都采用x86-64(简称 x64)架构。以下是详细说明:
x64 架构的普及背景
x64 是 x86 架构的 64 位扩展:由英特尔和 AMD 在 2000 年代初推出,兼容 32 位 x86 程序,同时支持更大的内存寻址(突破 32 位的 4GB 限制)和更高的性能。
取代 32 位架构的趋势:随着操作系统(如 Windows 7 及以上、macOS、Linux)和软件逐渐转向 64 位,x64 架构成为桌面电脑的主流选择,目前几乎所有新出厂的桌面处理器都基于 x64。
其他可能的架构(极少用于桌面)
ARM 架构:主要用于移动设备(手机、平板)和部分低功耗设备(如 Surface Pro X、苹果 M 系列芯片的 Mac)。虽然苹果 M 系列(基于 ARM)的 Mac 属于桌面 / 笔记本范畴,但占比仍低于 x64 设备,且更多被视为 “特例”。
其他架构:如 PowerPC、RISC-V 等,极少用于普通桌面电脑,主要应用于服务器、嵌入式设备或特定领域。
总结
对于绝大多数用户日常使用的桌面电脑(Windows PC、传统 x86 架构的 Mac 等),x64 是当前的主流架构。只有少数特殊设备(如苹果 M 系列 Mac、部分 ARM 架构的轻薄本)采用其他架构,但整体占比不高。
X86和X64是什么关系,谁更先进?
看起来86>64,X86更先进?
x86 和 x64 并非完全独立的架构,而是继承与扩展的关系,两者的核心关联及技术先进性可从以下角度理解:
一、x86 与 x64 的关系
x86 是基础架构 x86 起源于 1978 年英特尔的 8086 处理器,是一系列 32 位及以下架构的统称(包括早期的 16 位处理器)。它通过复杂指令集(CISC)设计,支持多任务、内存管理等功能,成为个人电脑和服务器的主流架构,我们熟悉的 Intel Pentium、AMD Athlon 等早期处理器都基于 x86。
x64 是 x86 的 64 位扩展 随着硬件性能需求提升,32 位 x86 架构的局限性逐渐显现(如最大内存寻址仅 4GB)。2000 年代初,AMD 率先推出 x86-64(简称 x64)架构,对 x86 进行了 64 位扩展:
兼容 x86:x64 处理器可直接运行 32 位 x86 程序,无需额外模拟;
突破限制:支持 64 位地址空间(理论最大寻址 16EB,远超 32 位的 4GB),并优化了指令集,提升了多线程和浮点运算性能。 此后英特尔也采纳了这一标准,因此 x64 成为 x86 架构的 “升级版”,而非全新架构。
二、谁更先进?
x64 更先进,原因如下:
硬件能力的跃升
内存寻址:x64 支持远超 4GB 的内存(如 64 位系统可识别 128GB 甚至更大内存),满足现代软件(如大型游戏、视频剪辑、虚拟机)对内存的高需求;
性能优化:x64 增加了更多通用寄存器和向量寄存器,提升了数据处理效率,尤其适合多任务和复杂计算场景。
软件生态的适配 目前主流操作系统(Windows 10/11、macOS、Linux)和软件(浏览器、设计工具、编程语言)均优先支持 x64,32 位 x86 软件正逐渐被淘汰(如 Windows 11 已不再原生支持 32 位系统)。
兼容性优势 x64 并非 “抛弃” x86,而是向下兼容—— 既能运行 64 位程序,也能兼容 32 位 x86 程序,兼顾了新技术和旧软件的使用需求,而 x86 无法支持 64 位程序。
总结
关系:x64 是 x86 架构的 64 位扩展,基于 x86 发展而来,且完全兼容 x86 程序;
先进性:x64 在内存支持、性能、软件生态等方面全面优于 x86,是当前主流的先进架构,而 x86(32 位)已逐渐退出主流舞台,仅在老旧设备或嵌入式场景中少量存在。
选择哪个版本?
git的Standalone 和 Portable 有什么区别?
Git 的 Standalone(标准安装版)和 Portable(便携版)是两种不同的分发形式,主要区别体现在安装方式、存储位置、系统集成度和使用场景上。以下是详细对比:
一、核心区别
特性 Standalone(标准安装版) Portable(便携版) 安装方式 通过安装程序(.exe)安装到系统目录(如 C:\Program Files) 解压到任意目录(如 U 盘、移动硬盘)即可使用,无需安装 系统集成 深度集成系统:
- 添加环境变量
- 注册文件关联
- 安装系统服务不修改系统配置,完全独立运行 存储位置 配置文件和用户数据存储在系统目录或用户配置文件夹(如 %AppData%) 所有文件集中在解压目录,可随移动设备带走 便携性 依赖系统安装,无法直接复制到其他电脑使用 可在不同电脑间直接移动使用,无需重新配置 适用场景 固定电脑长期使用,需系统级集成功能(如右键菜单、环境变量) 移动办公、多设备共享、临时使用或受限环境(如无管理员权限) 二、优缺点对比
类型 优点 缺点 Standalone - 系统级集成,使用便捷(如右键菜单、全局命令)
- 自动更新
- 适合固定设备长期使用- 安装需管理员权限
- 无法在不同设备间快速迁移
- 可能与其他版本冲突Portable - 无需安装,可直接运行
- 完全便携,适合移动办公
- 不影响系统配置,可共存多个版本- 缺少系统集成功能(如右键菜单)
- 需手动管理更新
- 配置文件可能丢失三、适用场景建议
选择 Standalone:
在固定电脑上长期使用 Git
需要系统级集成功能(如右键菜单、环境变量)
依赖自动更新机制
选择 Portable:
在多台电脑间共享 Git 环境(如 U 盘携带)
在无管理员权限的设备上使用
需要隔离配置(如测试不同版本的 Git)
临时使用或不想影响系统原有安装
四、注意事项
便携版的路径依赖:
解压后不要随意移动目录,否则可能导致工具链(如 MinGW)无法找到依赖文件。
配置文件管理:
便携版的配置文件随解压目录存储,移动设备丢失可能导致配置丢失。建议通过
.gitconfig
文件或环境变量同步配置。性能差异:
便携版从 U 盘运行时,读写速度可能较慢,尤其是处理大仓库时。
总结
Standalone 适合固定设备的长期使用,提供深度系统集成;
Portable 适合移动场景,无需安装即可使用,且不影响系统环境。
根据你的使用频率、设备稳定性和是否需要跨设备使用来选择即可。
下载不下来咋办
git官网下载不下来
解决办法参考:
(2 封私信 / 20 条消息) 解决git 官网无法下载问题 - 知乎
git 安装包 最新 下载 快速 国内 镜像 地址_安装包下载安装-CSDN博客
git使用
安装完成后咋使用呢?
安装完成后在桌面点击鼠标右键会显示如下内容
Git Bash 和 Git GUI 是 Git 提供的两种不同操作界面,分别面向命令行用户和图形界面偏好者。
一般都是使用Git Bash
这时候我们就可以进行本地操作了。
Git Bash 提供了类 Linux 的命令行体验,支持大多数常用的 Linux 命令和语法,非常适合在 Windows 上使用 Git 的开发者。但由于底层是 Windows 系统,它与原生 Linux 环境仍存在一些差异,在处理复杂场景或系统级操作时需注意。
有了命令行串口,后续的操作和Linux一样,直接参考:
嵌入式LINUX开发成长计划_linux嵌入式开发-CSDN博客
如果需要远程SSH,也一样配置。
和gitlab交互
附上gitlab的基本使用
一文掌握:Gitlab的完整使用手册-阿里云开发者社区
注意:关于私有仓库
在 GitLab 中,仓库的 ** 私有(Private)和公开(Public)** 设置决定了谁可以访问、查看和操作仓库内容。以下是两者的核心区别及适用场景:
一、核心区别
特性 私有仓库(Private) 公开仓库(Public) 可见性 仅项目成员和明确授权的用户可见 任何互联网用户均可查看(无需登录) 克隆 / 下载权限 仅项目成员可克隆或下载代码 任何人可克隆或下载代码 Issue/MR 权限 仅项目成员可创建 / 评论 Issue 和合并请求 非成员可查看 Issue/MR,但需项目成员批准才能合并 Wiki / 文档权限 仅项目成员可编辑 非成员可查看,但通常无法编辑 默认 CI/CD 行为 仅项目成员可见流水线日志 流水线日志对所有人公开(可能泄露敏感信息) 搜索引擎索引 不会被搜索引擎(如 Google)索引 可能被搜索引擎索引,内容可被公开搜索到 适用场景 商业项目、敏感代码、内部协作 开源项目、公共文档、教学资源 二、安全与隐私影响
1. 私有仓库
数据保护:代码和相关信息仅对授权用户可见,适合包含敏感信息(如 API 密钥、商业逻辑)的项目。
权限精细控制:可针对不同成员设置角色(如 Guest、Developer、Maintainer),限制操作权限。
合规要求:满足 GDPR、HIPAA 等法规对数据隐私的要求。
2. 公开仓库
无隐私保护:任何人可查看代码、提交历史、Issue 等内容,需确保不包含敏感信息。
潜在风险:
意外提交的密码、密钥等可能被滥用。
公开的 CI/CD 日志可能泄露内部网络信息。
有一个疑问,我在gitlab上有个私有仓库,我本地能clone下来吗?
是的,你可以从 GitLab 上克隆私有仓库到本地,但需要通过身份验证来证明你有权访问该仓库。以下是具体步骤和注意事项:
一、前提条件
已被添加为仓库成员 仓库所有者需将你添加为成员(如 Developer、Maintainer 等角色),否则无法访问。
本地安装 Git 确保已安装 Git 并配置了用户名和邮箱:
二、克隆私有仓库的方法
方法 1:使用 HTTPS(推荐)
# 从 GitLab 复制 HTTPS 地址 git clone https://gitlab.com/your-group/your-private-repo.git
优点:简单易用,无需额外配置。
缺点:每次推送 / 拉取需输入用户名和密码(或访问令牌)。
方法 2:使用 SSH(推荐长期使用)
生成 SSH 密钥(如果没有)
将公钥添加到 GitLab:
复制
~/.ssh/id_ed25519.pub
的内容。登录 GitLab → Settings → SSH Keys → 粘贴公钥。
克隆仓库
优点:一次配置后无需重复输入密码。
缺点:需正确配置 SSH 密钥。
三、身份验证方式
HTTPS 身份验证
密码:使用 GitLab 账号密码(仅适用于非双因素认证账户)。
个人访问令牌(推荐):
生成令牌:GitLab → Settings → Access Tokens → 勾选
api
和read_repository
权限。克隆时使用令牌代替密码:
SSH 身份验证
确保本地私钥(如
~/.ssh/id_ed25519
)未被修改,且与 GitLab 上的公钥匹配。四、常见问题及解决方法
权限不足错误
原因:未被添加为仓库成员,或 URL 拼写错误。
解决:联系仓库所有者添加权限,或检查 URL。
SSH 连接失败
原因:SSH 密钥未配置或不匹配。
解决:
HTTPS 每次都要求输入密码
解决:缓存凭证(适用于 Windows/Linux):
五、总结
只要你是私有仓库的授权成员,通过 HTTPS 或 SSH 均可成功克隆。建议优先使用 SSH 方式,避免频繁输入密码。如果遇到权限问题,需联系仓库所有者确认你的成员身份和角色。
gitlab添加成员是添加的gitlab账号,我本地使用ssh秘钥方式从gitlab上clone代码时,不用登录账号密码,gitlab是怎么知道我有没有某个仓库的权限的?
GitLab 通过 SSH 密钥绑定的用户身份 和 仓库成员权限设置 来验证你的访问权限。即使你在克隆时无需输入账号密码,GitLab 仍能通过 SSH 密钥确认你的身份,并检查该身份是否被授权访问特定仓库。具体流程如下:
一、SSH 认证原理
密钥对绑定 你在本地生成 SSH 密钥对(公钥 + 私钥),并将 公钥 添加到 GitLab 账号中。此时,GitLab 会将该公钥与你的账号绑定。
身份验证流程
1. 你发起克隆请求:git clone git@gitlab.com:group/repo.git 2. GitLab 服务器收到请求,要求你证明拥有配对的私钥 3. 你的本地 SSH 客户端使用私钥加密一个挑战信息并发送给服务器 4. GitLab 用你的公钥解密该信息,验证是否匹配 5. 若匹配,GitLab 确认你是公钥对应的账号持有者
关键点
公钥存储在 GitLab:每个公钥唯一对应一个 GitLab 用户。
私钥仅保存在本地:不传输到服务器,安全性由非对称加密保证。
二、权限验证流程
当你通过 SSH 克隆私有仓库时,GitLab 执行以下检查:
1. 验证 SSH 密钥是否属于已注册用户(身份验证) 2. 检查该用户是否为仓库成员(权限验证) 3. 检查用户在仓库中的角色(如 Developer、Maintainer) 4. 根据角色决定允许的操作(如只读、可提交、可删除)
若你的 SSH 密钥绑定的 GitLab 用户未被添加到仓库成员中,GitLab 会拒绝访问。
若你是 Guest 角色,GitLab 仅允许你查看仓库,而无法克隆或提交代码。
核心问题就是:我填写公钥时需要登录gitlab账号,因此可以使得账号和秘钥之间产生关联。
这样就能保证只有特定的主机和特定的gitlab账号才能操作特定的仓库。
实战记录
在gitlab上新建一个工程,并初始化一个readme文件
此时,这个远程仓库是空的;
接着,本地电脑上创建一个空目录,然后将这个仓库给clone下来(注意要先配置SSH秘钥)
首先在目录里点击鼠标右键打开git bash
然后直接git clone xxx
报错
重试一遍,在提示时输入yes,就可以了
这时候,仓库就被clone到本地了;
此时,我本地已经有一个工程了,怎么添加到仓库?
问题来了:Git 如何将整个文件夹添加到Git
参考:Git 如何将整个文件夹添加到Git|极客教程
可见,git add可以直接添加整个文件夹。
Git将开始跟踪“myproject”文件夹中的所有文件和子文件夹。
忽略某些文件
Git 如何在Windows上设置.gitignore文件?
参考:
Git 如何在Windows上设置.gitignore文件|极客教程
Windows10 下创建 .gitignore 的方法 - 楷哥 - 博客园
又遇到一个问题,被添加到
.gitignore
文件中的文件通常不会被 Git 追踪,也不会被提交到版本库,但是我现在的需求是:我想先将整个目录都提交到gitlab上,但是后续我又想只跟踪部分目录,怎么办?首先要明确一点,通常不想被跟踪的,都是那些自动生成的内容,比如一些编译链接后,或者打开工程后,生成的一些文件,这种情况下,我们就可以直接在提交之前,将这些内容都删掉,同时,为了避免后续生成这些文件后被git跟踪,所以将这些自动生成的内容都在.gitignore里排除掉。
比如:
.depend
和.layout
是 Code::Blocks 的辅助配置文件,用于优化编译和保存界面布局。通常不需要版本控制,应通过.gitignore
忽略它们,以避免冲突并保持版本库简洁。.gitignore只允许某些文件被跟踪咋写?
在
.gitignore
中使用 否定模式(!
) 可以实现 “只允许某些文件被跟踪” 的需求。# 允许特定文件/目录 !dir/ # 允许 dir 目录被跟踪 !dir/*.txt # 允许 dir 目录下的 .txt 文件 !important.csv # 允许根目录下的 important.csv
搞定上述内容后,直接git add -> git commit -> git push即可。