繁体   English   中英

如何为 GIT 存储库中的文件创建符号链接

[英]how to create symlink for files in GIT repository

我在 GIT 存储库中有一个名为“folder/hello.js”的文件。 它在同一个 GIT 存储库中有 10 个其他重复文件。 每次我签出和修改“hello.js”时,我都必须手动更改所有其他 10 个重复文件。

有什么方法可以为“folder/hello.js”文件创建符号链接并删除其他 10 个文件。

符号链接只是包含指向其他文件的符号指针的文件。 Git 将符号链接的内容提交到其 repo 中,并且 clone 和 pull 将重新创建这些符号链接。

符号链接可以包含文件的绝对或相对路径。 相对路径从链接所在的目录开始。 所以,想象一下这个目录/文件结构

a -
  |- b -
       |- hello.js
  |- hello.js

您想将其中一个文件替换为另一个文件的相对符号链接。

假设您决定您的真实文件在a/hello.js中,而您的链接将在a/b/hello.js中。 因此,您需要在 linux 类型的 shell 中做两件事:

rm a/b/hello.js # you need to replace it with a symbolic link
ln -s ../hello.js a/b/hello.js

在dos shell

mklink a\b\hello.js ..\hello.js

现在文件a/b/hello.js将包含文本../hello.js 文件系统将使用文本在父目录a/b中查找真实文件。

Git 将保存链接指针,当您克隆 repo 时,文件系统将看到指向..\hello.js 的符号链接

如果您决定使用另一个文件作为符号链接,您可以这样做

 ln -s b/hello.js hello.js

这样b/hello.js将是一个相对符号链接,并将在路径中替换而不是a/hello.js

此外,符号链接的名称可以与原始文件不同。 一个符号链接也可以以链状序列指向另一个符号链接。

希望它可以帮助您解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM