当前位置: 首页 > news >正文

上位机知识篇---Git符号链接

Git(分布式版本控制系统)

第一步:下载

官网地址:

Redirecting…

清华源镜像下载:

Index of /github-release/git-for-windows/git/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

第二步:安装

安装注意:

一般不需要Start Menu folder(经常通过git终端操作)


设置默认main支(节省操作)


选择使用Window的console(控制台)


选上使能符号链接(为文件或目录创建一个 “指向性引用”)

第三步:使用

git clone (http://.....)

cd [目标仓库的副本目录]

git status 查看被修改的文件列表

git add [文件1][文件2] 提交文件到缓冲区(暂存区)

git add * 提交全部文件到缓冲区(暂存区)

git diff [文件] 查看具体的文件修改内容

git commit -m "更新日志"(将暂存区的修改的内容打包成一次更新)

git push origin

注意:

Git中认为空文件是无效的,不会进行提交(请至少增加readme.txt或者.gitkeep等文件)

Git对文件名的大小写不敏感

(可以通过删除再重新上传解决问题)

额外知识点:符号连接

符号链接的含义

符号链接(Symbolic Link,简称 “软链接”)是一种特殊的文件类型,它类似于 Windows 系统中的 “快捷方式”,但功能更强大且在类 Unix 系统(如 Linux、macOS)中广泛使用。

符号链接的核心作用是为文件或目录创建一个 “指向性引用”,即通过一个特殊的文件(软链接文件)指向另一个实际存在的文件或目录。例如,创建一个名为link.txt的软链接指向/home/user/doc.txt,那么访问link.txt就等同于访问/home/user/doc.txt

与硬链接(Hard Link)不同,符号链接是独立的文件,它存储的是目标路径(而非数据本身),且可以跨文件系统、指向目录,也可以指向不存在的目标(此时称为 “悬空链接”)。

安装 Git 时为何需要启用符号链接?

Git 作为版本控制系统,在处理文件和目录时,符号链接的支持是重要功能之一,具体原因如下:

  1. 保留项目中的符号链接结构
    许多项目(尤其是开源软件、开发工具)会使用符号链接来组织文件(例如,将常用工具的可执行文件链接到系统bin目录,或在项目内创建跨目录的快捷引用)。
    若 Git 不支持符号链接,这些链接会被当作普通文件处理(存储的是链接文本而非指向关系),导致克隆或检出项目时,原有的文件结构被破坏,程序可能无法正常运行。

  2. 跨平台一致性
    Git 需要在类 Unix 系统(原生支持符号链接)和 Windows 系统(传统上对符号链接支持有限)之间保持兼容性。

    • 在类 Unix 系统中,符号链接是原生功能,启用后 Git 可直接记录链接关系。
    • 在 Windows 系统中,早期版本不支持符号链接,但现代 Windows(如 Win10+)通过 “开发者模式” 或管理员权限支持符号链接。安装 Git 时启用符号链接,可确保 Windows 用户克隆项目时,能正确还原符号链接(而非仅复制链接文本),保证项目在不同系统中的行为一致。
  3. 处理 Git 自身的内部文件结构
    部分 Git 组件或插件在安装过程中可能依赖符号链接来简化文件部署(例如,将 Git 的核心工具链接到系统 PATH 目录,方便全局调用)。启用符号链接支持可确保这些内部链接正确创建,避免安装后出现 “命令找不到” 等问题。

总结

符号链接是文件系统中用于创建路径引用的重要机制,而 Git 需要支持符号链接以准确记录和还原项目的文件结构,确保跨平台兼容性,以及处理自身安装和运行时的依赖关系。因此,安装 Git 时启用符号链接是保证其功能完整性和项目一致性的必要步骤。

http://www.lryc.cn/news/585747.html

相关文章:

  • vue3 el-input 通过数组 获取显示
  • 【构建Tomcat版本检查工具:自动检测并提醒版本更新】
  • [面试] 手写题-插入排序
  • Redis命令参考手册
  • (C++)set集合相关知识(STL标准库)(C++教程)(set集合基础教程)
  • 供应链管理-计划:产能策略
  • 匿名函数作递归函数引用
  • 声明式 vs 编程式:Spring事务管理全对比
  • Prometheus+Grafana部署及企业微信邮件/群消息告警通知配置
  • linux系统-----Redis数据库基础
  • 迭代器(c++)、智能指针
  • LDO选型
  • Rust基础-part2-变量和可变类型
  • LVS-NAT模式配置
  • 期望和方差的计算
  • 深度学习×第8卷:优化器与训练流程进阶——她开始跑起来,学着一次次修正自己
  • 深度体验飞算JavaAI:一场Java开发效率的革命
  • 百度2026届校招开启,大规模发力AI的百度未来何在?
  • Telnet远程连接实验(Cisco)
  • Redis事务失败的处理机制与处理方案
  • 日历插件-FullCalendar的详细使用
  • C++:非类型模板参数,模板特化以及模板的分离编译
  • 【整数大求余草稿】2022-3-7
  • 进制转换原理与实现详解
  • Qt中QGraphicsView类应用解析:构建高效2D图形界面的核心技术
  • vue table 自定义处理 key 作为 表头
  • AUTOSAR进阶图解==>AUTOSAR_SWS_IOHardwareAbstraction
  • [精选]如何解决pip安装报错ModuleNotFoundError: No module named ‘subprocess’问题
  • Matlab裁剪降水数据:1km掩膜制作实战
  • C++STL-list