Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在不更改URL的情况下重命名Git子目录(其内容)?_Git_Url_Gitlab_Rename_Subdirectory - Fatal编程技术网

我可以在不更改URL的情况下重命名Git子目录(其内容)?

我可以在不更改URL的情况下重命名Git子目录(其内容)?,git,url,gitlab,rename,subdirectory,Git,Url,Gitlab,Rename,Subdirectory,我是Git的新手。我在一个Git网站上工作,我想重命名其中一个子目录,但不想更改其子内容的URL。这部分是因为断开的链接会导致问题,部分是因为如果URL保持不变,则URL对其中的内容仍然有意义 子目录当前称为“高级指南”,我想将其重命名为“用户指南”,但不希望URL从xyzi.com.au/Documentation/Advanced Guides/… 有没有一种方法可以在不更改URL的情况下更改子目录名 如果我们使用的是cms,这将是可能的,所以我真的希望有一种方法,我们可以在这个网站上做到这

我是Git的新手。我在一个Git网站上工作,我想重命名其中一个子目录,但不想更改其子内容的URL。这部分是因为断开的链接会导致问题,部分是因为如果URL保持不变,则URL对其中的内容仍然有意义

子目录当前称为“高级指南”,我想将其重命名为“用户指南”,但不希望URL从xyzi.com.au/Documentation/Advanced Guides/…

有没有一种方法可以在不更改URL的情况下更改子目录名

如果我们使用的是cms,这将是可能的,所以我真的希望有一种方法,我们可以在这个网站上做到这一点。有人告诉我这是不可能的,但我觉得很难相信(我一直是乐观主义者)

我附上了几个屏幕截图来显示文件结构-一个是Finder的视图,另一个是Terminal的视图:


我可以尝试什么?

根据评论,这里的答案是,如果您自己托管远程设备,您可能可以设置重复的名称/路由,以完成您所寻找的任务。否则,这可能是不可能的(在Github、Gitlab等上)

然而,我的答案是,你应该认真地重新审视你为什么要这样做,并可能修复导致你想这样做的根本原因,而不是追求一个基于git或服务器的bandaid,它会通过将可能糟糕的基础设施进一步扩展到你的代码库中而锁定它

您的基础架构中的某些内容是使用硬编码链接构建的,而不是灵活和/或可配置的。从长远来看,重构您的基础架构以支持更灵活的方法更有可能是值得的,如果时间/时间表至关重要,那么您总是可以通过查找/替换来更改硬编码的链接,但仍然是硬编码的


替代解决方案的其他考虑因素 更新外部URL链接可能会破坏向后兼容性。然而,如果是这样的话,很可能您没有很好地设置回购的相互依赖关系。例如,使用Git子模块可以将一个repo的提交与另一个repo的提交绑定在一起,这样版本控制总是继承正确的

i、 e.如果硬编码URL位于外部工具中,如果您在将子模块更新到主代码repo中目录名称正在更改的提交时修复了其repo中的链接,则对两个repo的更新将同步

或者更简单地说,如果硬编码链接位于该工具的配置文件中,只需将配置文件保存在主代码repo中。这遵循“基础架构即代码”的设计模式和最佳实践。如果您的外部工具是自行开发的工具,那么将其更改为在文件中接受某种配置变量,而不是将硬编码的值编译到工具中,应该不会太困难


因此,这可能不是您想要的答案,但我们必须不断学习更好的长期可维护性和可伸缩性技术,如果您有时间解决核心问题,这看起来是一个将您的项目推向该方向的机会。只要这不是一次性的或一次性的开发代码,这可能是最好的选择。

根据评论,这里的答案是,如果您自己托管远程设备,您可能能够设置重复的名称/路由,以完成您所寻找的任务。否则,这可能是不可能的(在Github、Gitlab等上)

然而,我的答案是,你应该认真地重新审视你为什么要这样做,并可能修复导致你想这样做的根本原因,而不是追求一个基于git或服务器的bandaid,它会通过将可能糟糕的基础设施进一步扩展到你的代码库中而锁定它

您的基础架构中的某些内容是使用硬编码链接构建的,而不是灵活和/或可配置的。从长远来看,重构您的基础架构以支持更灵活的方法更有可能是值得的,如果时间/时间表至关重要,那么您总是可以通过查找/替换来更改硬编码的链接,但仍然是硬编码的


替代解决方案的其他考虑因素 更新外部URL链接可能会破坏向后兼容性。然而,如果是这样的话,很可能您没有很好地设置回购的相互依赖关系。例如,使用Git子模块可以将一个repo的提交与另一个repo的提交绑定在一起,这样版本控制总是继承正确的

i、 e.如果硬编码URL位于外部工具中,如果您在将子模块更新到主代码repo中目录名称正在更改的提交时修复了其repo中的链接,则对两个repo的更新将同步

或者更简单地说,如果硬编码链接位于该工具的配置文件中,只需将配置文件保存在主代码repo中。这遵循“基础架构即代码”的设计模式和最佳实践。如果您的外部工具是自行开发的工具,那么将其更改为在文件中接受某种配置变量,而不是将硬编码的值编译到工具中,应该不会太困难


因此,这可能不是您想要的答案,但我们必须不断学习更好的长期可维护性和可伸缩性技术,如果您有时间解决核心问题,这看起来是一个将您的项目推向该方向的机会。只要这不是一次性的或一次性的开发代码,这可能是最好的选择。

所以问题是“如何在不重命名子目录的情况下重命名子目录?”抱歉,但没有办法。Git不提供从视图到数据库的映射