如何在不删除任何文件的情况下从跟踪中分离文件夹?

Posted

技术标签:

【中文标题】如何在不删除任何文件的情况下从跟踪中分离文件夹?【英文标题】:How to detach a folder from being tracked without deleting any files from it? 【发布时间】:2021-08-05 07:56:21 【问题描述】:

我完成了 MyProject1 并在添加每个新功能后以良好的方式将其上传到 git 中。现在我正在启动 MyProject2 并尝试添加远程存储库的 URL。但后来我发现我错误地将 URL 添加到 Documents 而不是 MyProject1 文件夹中,因为 MyProject2 文件夹也在 MyProject1 中被跟踪。而且我无法将 URL 添加到 MyProject2 而是面临合并问题。

有什么方法可以在不从 Documents 中删除我的任何文件的情况下从我的 Document 文件夹中分离轨道。 结构是这样的(我用的是Linux):

文件 (在 Documents 里面有:)

    我的项目1 我的项目2 以及其他也在被跟踪的文件夹。

【问题讨论】:

git rm -r --cached 然后将它们添加到.gitignore 谢谢,但是我应该在 Documents 目录或 MyProject1 目录中应用此命令吗?? 【参考方案1】:

最佳方式:

在@Vinayagam R 之后创建一个.gitignore 文件

本地忽略文件

这些方法不会影响在同一远程存储库上工作的其他贡献者:

使用更新索引:

如果您想在某个特定点停止跟踪文件。

git update-index --assume-unchanged yourDirectoryName

--assume-unchanged 是标志,表示文件不应在本地更改。换句话说,它用于忽略您不需要在本地更改(或不应该更改)的文件。

恢复它使用update-index --no-assume-unchanged yourDirectoryName

使用 .exclude

在你的工作目录中编辑.git/info/exclude

【讨论】:

【参考方案2】:

我们可以通过以下步骤手动完成

    在基目录中创建一个文件 .gitignore。 如果 MyProject1 和 MyProject2 已经是 git 跟踪的一部分,请运行命令 git rm -r --cached MyProject1/ git rm -r --cached MyProject2/ 在文本编辑器中打开文件并在文件中添加以下行 我的项目1/ 我的项目2/

【讨论】:

以上是关于如何在不删除任何文件的情况下从跟踪中分离文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不创建快照的情况下从 cassandra 表中删除所有记录

如何在不影响 phpMyAdmin 的情况下从 mysql 中巧妙地删除 pma 表

如何在不发出单独请求的情况下将元数据和音轨从广播流中分离出来

如何在不通过 COM 的情况下从 VB6 调用 C++ DLL?

如何在不打开的情况下从 CSV 文件中检索数据

如何在不从磁盘中删除文件的情况下 git rm 文件? [复制]