如何取消git文件夹?

时间:2016-05-03 19:15:24

标签: git gitlab smartgit

如何“取消”git文件夹?

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

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

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

Backstory / Reason:我想在我将要构建的所有全新组件中重用一些已完成组件的代码。我不想复制&每当我克隆一个新的存储库时,将完全构建的组件的代码粘贴到一个新文件夹中。想要构建一个新组件。每次我创建一个新组件时,我都不想删除那个新组件中不应该删除的内容。所以我想用起始代码的主副本创建一个干净的存储库。假设它包含完整组件代码的1/3。我要将clean / master代码文件夹复制到每个新的Git存储库文件夹中。然后我将进入我的新组件的文件夹,以扩展该文件夹中的复制代码。这将是一个很好的干净的cookie切割器方法来构建新的组件,我可以避免删除过多的文件&编辑多个文件,删除大量代码。

理想示例:

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

有一种简单的方法可以“取消”git文件夹吗?我想看一个文件夹列表&文件,我想包括。不是“嵌套根”包。

1 个答案:

答案 0 :(得分:0)

是的,有一种简单的方法可以做到这一点!我刚喝完第二杯咖啡后就明白了。使用这些命令将允许所有文件作为展开的文件列表在SmartGit中显示。然后可以单独包含它们,而不是捆绑为Nested Root子模块。

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

因此,如果有其他人遇到这个问题,那就是如何解决它。

顺便说一下,使用ls -a显示了这个隐藏文件列表:

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

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

我注意到有关于文件的一件事。在某些文件夹中,我不得不进入它们。执行以下操作,以使子文件夹显示在SmartGit中:

cd /subfolder/
touch abc
rm abc

这允许具有子文件夹的文件显示为单个文件。

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