首页 / 知识
如何让Git遵循符号链接?
2023-04-16 18:40:00

How can I get Git to follow symlinks?我最好是一个shell脚本用副本替换符号链接,还是有另一种方式告诉Git遵循符号链接? PS:我知道它不是很安全,但我只想在一些特定情况下这样做。 我做了什么来添加到符号链接中的文件到Git(我没有使用符号链接但是):
在Git托管目录中执行此命令。必须在 它适用于Linux,但不适用于OSX!这个技巧也帮助了Subversion。我使用它来包含来自Dropbox帐户的文件,其中webdesigner执行他/她的东西。 为什么不以相反的方式创建符号链接?意思是代替从Git存储库到应用程序目录的链接,只需链接另一种方式。
例如,假设我正在设置安装在
这种方法可能并不总是有效,但到目前为止它对我来说效果很好。
请改用硬链接。这与软(符号)链接不同。所有程序(包括 在macOS上(10.13 High Sierra之前) 如果您已经安装了git和Xcode,请安装hardlink。它是创建硬链接的微观工具。 要创建硬链接,只需:
macOS High Sierra更新
关注https://github.com/selkhateeb/hardlink/issues/31以了解未来的替代方案。 在Linux和其他Unix风格
在Windows上(Vista,7,8,...) 有人建议在Windows上使用mklink创建一个联结,但我还没有尝试过:
注意:自Git 1.6.1起,此建议现已根据评论过时。 Git曾经以这种方式行事,而不再这样做。 Git默认尝试存储符号链接而不是跟随它们(对于紧凑性,它通常是人们想要的)。 但是,当符号链接是目录时,我偶然设法让它在符号链接之外添加文件。 即:
通过做
当我尝试它时,它似乎工作。然而,当时我的这种行为是不受欢迎的,所以我无法向你提供除此之外的信息。 这是一个预提交钩子,用这些符号链接的内容替换索引中的符号链接blob。
把它放在
笔记
我们尽可能使用符合POSIX标准的功能;但是, 此代码中可能存在一些错误/错误,即使它已经过一些测试。 我过去常常在符号链接之外添加文件已有一段时间了。过去工作得很好,没有做任何特殊安排。自从我更新到Git 1.6.1后,这不再适用了。
您可以切换到Git 1.6.0来完成这项工作。我希望Git的未来版本会有一个 我厌倦了这里的每个解决方案要么已经过时,要么需要root,所以我做了一个基于LD_PRELOAD的解决方案(仅限Linux)。 它与Git的内部结构挂钩,覆盖了'这是一个符号链接吗?'函数,允许将符号链接视为其内容。默认情况下,所有指向repo外部的链接都是内联的;请参阅链接了解详情。
使用Git 2.3.2 +(2015年第1季度),还有另一个案例,Git将不再遵循符号链接:请参阅Junio C Hamano(
这意味着,在这种情况下,错误消息将不是像
在 <5233>
它已被其他评论暗示,但在其他答案中没有明确提供。希望这能节省一些时间。
嗯, 有人有诀窍吗? [编辑]
好的,我发现MacOSX的答案是建立一个硬链接。除非该API未通过 在Mac OS X中创建目录硬链接 请享用! 我正在使用Git 1.5.4.3,如果它有一个尾部斜杠,它会跟随传递的符号链接。例如。
从符号链接转换可能很有用。通过脚本链接Git文件夹而不是符号链接。 |
最新内容
相关内容
更新文件命令linux?
更新文件命令linux?,工作,系统,地址,信息,时间,命令,目录,基础,标准,网络,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目linux基础命令增加文件?
linux基础命令增加文件?,系统,时间,名字,文件,基础,数据,命令,名称,首次,密码,linux命令如何新建一个文件终端下键入:touch加文件名,这样就创建linux下读取文件命令?
linux下读取文件命令?,系统,工作,地址,数字,图片,信息,网络,命令,文件,一致,linux文件系统常用命令1、其中一些常用的命令包括ls、cd、pwd和mklinux文件全选命令?
linux文件全选命令?,电脑,系统,环境,代码,平台,服务,快捷键,文件,命令,权限,linux不小心文件全选点了打开,怎么全部取消打开文件你如果没有修linux浏览文件类命令?
linux浏览文件类命令?,系统,信息,数据,情况,命令,标准,时间,文件,概念,管理,在Linux系统中,执行什么命令查看文件或目录的权限?1、linux查看文linux重名名文件命令?
linux重名名文件命令?,图片,名称,名字,文件,命令,位置,代码,软件,系统,文件名,linux文件重命名命令mv较简单的处理命令:mvmv原文件名新文件名如linux将文件备份命令?
linux将文件备份命令?,系统,密码,设备,软件,通讯,较大,认证,服务,数据,文件,Linux下数据备份命令scp、rsync和后台运行1、scp 是secure copy的linux扩展文件命令?
linux扩展文件命令?,工作,地址,系统,信息,命令,目录,管理,情况,文件,标准,Linux文件系统操作命令1、(1)根据文件名查找例如,我们想要查找一个文linux命令替换失败?
linux命令替换失败?,系统,基础知识,工具,代码,数据,情况,数字,命令,文件,内容,linux下替换问题1、方法1:sed -i s/被替换的内容/要替换成的内容linux文件替换命令行?
linux文件替换命令行?,资料,命令,文件,数据,名称,系统,实时,工作,字符串,批量,Linux命令之sed-替换字符串Linux sed 命令是利用脚本来处理文本linux脚本命令修改?
linux脚本命令修改?,密码,系统,文件,资料,工具,软件,基础,地址,标准,命令,linux中想在脚本中实现修改一个ip地址参数的配置文件,用sed命令如何linux命令行解锁文件?
linux命令行解锁文件?,系统,地址,工具,工作,管理,电脑,命令,文件,信息,密码,Linux命令行执行root权限的命令目录方法1:从终端获取root权限打开