如何在git clone / fetch上重命名/重定位目录并保留历史记录?

时间:2013-10-24 14:54:05

标签: git git-submodules git-subtree

在远程主服务器上有一个文件夹 / config / samples / (它还包含子目录),其中包含示例配置文件;这些文件足以在没有任何变化的情况下在真实环境中使用。该应用程序位于同一个存储库中,只能从 / settings / 目录中读取文件。

如何让master的每个克隆都将本地文件夹重命名为所需的文件夹并保留这些文件的历史记录(所以如果我在那里添加文件,它将被放置在git上的master上的右侧文件夹中拉)?

文件系统上没有符号链接和硬链接。

提前致谢!

2 个答案:

答案 0 :(得分:1)

我不确定我是否理解你的问题,但是git看到了重命名的文件。如果你执行

    mv file_orig_name.ext file_new_name.ext
    git rm file_orig_name.ext
    git add file_new_name.ext
    git commit -m "changed file name file_orig_name.ext to file_new_name.ext"

他们将显示为重命名,而不是一个消失而另一个出现。

答案 1 :(得分:0)

git目前没有此类功能。

对于这种功能,必须使用操作系统的功能,如符号链接(如果有的话)。在这种情况下,仍然需要运行一个设置过程,因此像Make或Rake这样的工具可以帮助您创建所需的文件夹,也可以检查它们的变化。

最后,您可以考虑使用git hooks,以便在特定事件上调用脚本。 post-checkoutpost-merge以及post-commit可能对此有用。