我怎样才能让git跟随符号链接?

时间:2020-03-05 18:59:41  来源:igfitidea点击:

我有一个谷歌如何做到这一点,但没有任何运气。

我最好是将shell脚本替换为副本的符号链接,还是有另一种方法告诉git遵循符号链接?

PS:我知道它不是很安全,但是我只想在某些特定情况下这样做。

解决方案

回答

注意:从git 1.6.1开始,这个建议已经过时了。 Git过去一直是这种方式,现在不再这样做。

默认情况下,Git尝试存储符号链接而不是跟随符号链接(为了紧凑起见,这通常是人们想要的)

但是,当符号链接是目录时,我不小心设法使其添加到符号链接之外的文件。

IE。:

/foo/ 
  /foo/baz
  /bar/foo --> /foo 
  /bar/foo/baz

通过做

git add /bar/foo/baz

当我尝试它时,它似乎起作用了,但是当时我不希望这种行为,所以我无法提供更多信息。

回答

我过去很长时间以来都在符号链接之外添加文件。过去这种方法工作得很好,无需进行任何特殊安排。自从我更新到git 1.6.1以来,这不再起作用了。

我们可能可以切换到git 1.6.0来完成这项工作。我希望git的将来版本中会有一个git-add的标志,使它可以再次跟随符号链接。

回答

我使用的是git 1.5.4.3,如果传递的符号链接带有斜杠,它就在传递的符号链接之后。例如。

# adds the symlink itself 
$ git add symlink 

# follows symlink and adds denoted directory's contents
$ git add symlink/

回答

我做了什么添加才能将符号链接中的文件转换成git(我没有使用符号链接,但是):

sudo mount --bind SOURCEDIRECTORY TARGETDIRECTORY

在git托管目录中执行此命令。必须在将" SOURCEDIRECTORY"安装到其中之前创建" TARGETDIRECTORY"。

在Linux上可以正常工作,但在OS X上却不能正常工作!这个技巧也帮了我颠覆。我使用它来包含来自Dropbox帐户的文件,该帐户由Webdesigner负责。

回答

hmmm mount --bind似乎不适用于达尔文。

有人有招吗?

[编辑]

好的,我发现OSX的答案是建立硬链接。除了该API不是通过ln公开的,因此我们必须使用自己的微型程序来执行此操作。这是该程序的链接:

在MacOS X中创建目录硬链接?

享受!