在git中处理符号链接的正确方法是什么?
我有以下结构:
Vendors
Module A
Module B
Module C
App
Code
Modules
Core Module 1
Core Module 2
Module A (symlinked to vendors)
Module B (symlinked to vendors)
Module C (symlinked to vendors)
Run Code Online (Sandbox Code Playgroud)
有一个主App域目录,其中包含应用程序中的所有核心代码.此外,还有一个供应商目录,其中包含符号链接到主应用程序目录并因此集成的模块.
重要的是,供应商目录和主应用程序目录都在同一个存储库中进行了版本控制.
因此,我应该让git继续存储符号链接,还是找到让它忽略符号链接的方法?
Mar*_*ins 133
只要所有开发人员使用的操作系统都支持它们,Git就可以很好地处理符号链接.由于您依赖于存在这些符号链接,因此我将假设您的开发环境都支持符号链接.
要确定是否应将某些内容包含在您的git存储库中(符号链接或其他方式),请考虑以下事项:
在您的情况下,似乎没有生成符号链接,并且在所有环境中都需要它们,因此将它们放在存储库中应该没问题.
但是,在创建它们时,一定要将它们创建为相对符号链接而不是绝对符号链接,这样无论克隆存储库的位置如何,它们都可以工作.最简单的方法是将目录更改为Modules目录并从那里创建符号链接:
cd App/Code/Modules
ln -s "../../../Vendors/Module A" "Module A"
Run Code Online (Sandbox Code Playgroud)
Tux*_*ude 11
Git存储符号链接,就像它的版本控制中的任何其他文件一样 - 除了符号链接外,它只存储有关它符号链接到的路径的信息,文件类型作为符号链接而不是常规文件.
如果符号链接指向目录,则git不会将内容存储在符号链接目录下.
因此,对于您的案例存储在git下版本化的符号链接应该没有任何害处.
使用符号链接需要注意的另一件事是,git只会在新克隆上重新创建符号链接,而不是它指向的文件或目录.符号链接路径可能不存在(例如使用绝对路径时).
| 归档时间: |
|
| 查看次数: |
66757 次 |
| 最近记录: |