gpt4 book ai didi

linux - Git merge 已经分离的目录

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:48 25 4
gpt4 key购买 nike

不太确定如何清楚地解释这一点,但这里是。

由于 Tortoise-git 中的错误,我们以这样的情况结束;

我们所有的代码都应该在这样的目录结构下(这是 Symfony2 项目);

src/XYZ/OurExitingBundle
src/XYZ/AnotherExcitingBundle

但是,由于(我们认为)Tortoise-git 中的错误,当我们将代码 pull 到 linux 机器上时,我们得到了;

src/XYZ/OurExcitingBundle
src/XYZ/AnotherExcitingBundle
src/xyz/ourexcitingbundle
src/xyz/anotherexcitingbundle

(即实际目录,加上等效的小写字母)。制作我们项目的文件似乎在 CamelCase 和小写目录之间随机拆分。

当我们在 Windows 机器上开发时,这在编码时并不重要,但是当代码被推送到我们的 linux 服务器时,一切都会失败,因为文件不在它们应该在的位置,或者文件存在于CamelCase 目录,但较新的版本位于小写目录中。

所以,我的问题是,有没有一种方法可以将小写目录中的所有文件“merge ”到 CamelCase 目录中的对应文件中,最终只在 CamelCase 目录中包含所有最新代码?

非常感谢所有帮助。

最佳答案

这里有两件事要做。最简单的方法是确保 Windows 上的每个客户端都有

core.ignorecase = true 

设置在他们的每个存储库上。这意味着 git 将忽略本地大小写的任何差异,并应使用与本地存储库中使用的大小写相同的大小写。

其次,所有间距不正确的路径都需要在存储库中进行更改。这有一个副作用,即团队将不得不提取这个新版本的历史记录。 filter-branch 命令通常用于此类任务。这将是这样的:

git filter-branch --tree-filter 'test -d src/xyz && for f in `git ls-files src/xyz`; do git mv "$f" src/XYZ; done'

Tortoise Git 也进行了更改以改进对处理大小写敏感度的支持:

所以检查您使用的版本也是值得的。

关于linux - Git merge 已经分离的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18452730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com