【问题标题】:How to rename/relocate directory on git clone/fetch and preserve the history?如何在 git clone/fetch 上重命名/重定位目录并保留历史记录?
【发布时间】:2013-10-24 14:54:05
【问题描述】:

在远程主机上有一个文件夹/config/samples/(它还包含子目录),其中包含示例配置文件;这些文件足以在实际环境中使用而无需任何更改。该应用程序位于同一存储库中,只能从 /settings/ 目录中读取文件。

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

符号链接和硬链接在文件系统上不可用。

提前致谢!

【问题讨论】:

    标签: git git-submodules git-subtree


    【解决方案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"
    

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

    【讨论】:

      【解决方案2】:

      目前git中没有这样的功能。

      因为这种功能必须利用您操作系统的功能,例如符号链接(如果有的话)。在这种情况下,仍然需要运行一个设置过程,因此 Make 或 Rake 等工具可以帮助您创建所需的文件夹,并可能检查其中的更改。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-20
        • 2021-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多