GitLab:从回购断开文件

Posted

技术标签:

【中文标题】GitLab:从回购断开文件【英文标题】:GitLab: Disconnect Files from a Repo 【发布时间】:2021-04-20 16:28:58 【问题描述】:

我将从这里开始说这是我第一次以任何身份使用 git,所以如果这是一个愚蠢的问题,我深表歉意。我做了研究,找不到任何具体的东西。

我正在尝试将文件添加到“项目 A”中的存储库。我试图添加的项目“项目 B”已经是它自己的存储库的一部分,这导致发生“脏子模块”错误并且不允许提交。我以压缩文件的形式获得了“项目 B”,但不知道它是如何连接到它自己的存储库的。我相信 Git 想要我做的是提交在我收到文件之前所做的“项目 B”更改,但我无法做到。

我必须解决这个问题的一个想法是从它的存储库中“断开”项目 B,以便它们在我的本地桌面上成为简单、正常、未连接的文件。我相信这将使我能够毫无问题地将它们放入“项目 A”。这是最好的方法吗?如果是,我该如何实现呢?我也在使用 TortoiseGit。

非常感谢您的宝贵时间!

【问题讨论】:

【参考方案1】:

您希望项目 A 存储库忽略包含项目 B 的文件夹。您需要在项目 A 的根目录中创建一个名为 .gitignore 的文件。这可以包含您不需要 git 管理的任何文件和文件夹模式。

https://git-scm.com/docs/gitignore https://docs.github.com/en/free-pro-team@latest/github/using-git/ignoring-files
/projectA
    /folder1
    /folder2
    /projectB
    /folder3
    index.html
    .gitignore

在该文件中,只需添加

/projectB

并且您的 projectA 的 git 应该完全忽略该文件夹。在根目录运行git status,它不应该“看到”需要添加的文件夹。

编辑(当天晚些时候):

我之前没有想到的一件事是,这允许您将项目 B 检出到项目 A 的子文件夹中,并且仍然使用 git 来管理该项目(拉取更新等),而不会影响项目 A。

【讨论】:

这也很有效,我发现的另一个简单解决方案是从 ProjectB 中删除 .git 文件。非常感谢您抽出宝贵时间给我一个不那么“hacky”的解决方案!

以上是关于GitLab:从回购断开文件的主要内容,如果未能解决你的问题,请参考以下文章

python 从Gitlab下载项目回购。

从控制台/命令窗口断开java应用程序[重复]

在播放框架中发送大文件时如何捕获客户端断开连接?

如何从SignalR客户端端确定服务器断开连接

从 MCSession 断开单个对等点?

Qt 插槽同时断开连接并从不同线程调用