gpt4 book ai didi

git - 如何解除 git 文件夹的嵌套?

转载 作者:行者123 更新时间:2023-12-03 09:16:35 30 4
gpt4 key购买 nike

如何“取消嵌套”git 文件夹?

我有一个组件,已上传到 GitLab 。我想将该代码的一部分包含到一个全新的 GitLab 存储库中。

当我将/code/文件夹包含到新的 Git 存储库中时,它告诉我该文件夹处于 Nested Root 状态。我正在使用SmartGit ,其中似乎显示了文件的 bundle ,而不是单个文件夹和文件。

当我尝试使用 SmartGit 将其添加到 GitLab 中时,它想要为我的原始组件(也在 GitLab 中)创建一个子模块。我真的不想在当前的 /cleanRepo/ 和任何 /existingRepo/ 之间链接它。我知道 SVN 曾经有很多 stash 的 .properties 文件。 Git 似乎也有这些。所以我可能需要让它忘记之前存储库的所有 Git 信息。

背景故事/原因:我想在我想要在未来构建的所有全新组件中重复使用一些已完成组件的代码。每当我克隆新存储库并想要构建新组件时,我不想将完全构建的组件的代码复制并粘贴到新文件夹中。我不想每次创建新组件时都必须删除该新组件中不应该包含的内容。所以我想创建一个干净的存储库,其中包含起始代码的主副本。假设它包含完整构建组件的 1/3 代码。我将把 clean/master 代码文件夹复制到每个新的 Git 存储库文件夹中。然后我将进入新组件的文件夹以扩展该文件夹中复制的代码。这将成为构建新组件的一种很好的干净的千篇一律的方法,我可以避免删除过多的文件和编辑多个文件,从而删除大量代码。

理想示例:

cd /cleanRepo/code/
cp -R ./* ~/someNewFolder
cd ~/someNewFolder
^-- start editing that code, but don't edit any /cleanRepo/code/

有没有一种简单的方法来“取消嵌套”git 文件夹?我想查看我想要包含的文件夹和文件的列表。不是“嵌套根” bundle 。

最佳答案

是的,有一个简单的方法可以做到这一点!我在喝完第二杯咖啡后才发现这一点。使用这些命令将允许所有文件在 SmartGit 中显示为展开的文件列表。然后它们可以单独包含,而不是捆绑为嵌套根子模块。

cd /cleanRepo/code/
ls -a
rm -rf .git*
find . -exec touch {} \;

因此,如果其他人遇到此问题,这就是解决方法。

顺便说一句,使用ls -a 显示 stash 文件列表:

.
..
.editorconfig
.eslintignore
.eslintrc
.git
.gitattributes
.gitignore
.gitlab-ci.yml
.npmignore

请确保您不使用rm -rf *.*,因为它会强制且静默地删除所有内容!

关于这些文件,我注意到一件事。在某些文件夹中,我必须进入它们并执行以下操作,才能使子文件夹显示在 SmartGit 中:

cd /subfolder/
touch abc
rm abc

这允许带有子文件夹的文件显示为单独的文件。

我添加了一种自动执行子目录遍历和触摸过程的方法,而无需为其编写脚本。这是 find 。 -exec touch {}\; 行上面。如果这对您不起作用,请进入子文件夹,触摸文件(或创建新文件+删除它),然后文件就会出现!

关于git - 如何解除 git 文件夹的嵌套?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37012567/

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