如何从 Github 存储库中删除远程 url

How to remove remote url from Github repository

我确定这是一个非常简单的问题,但我找不到答案,所以非常感谢您的回答!

我创建了一个样板存储库,我(和其他任何人)都可以将其复制为新项目的起点。问题是:当我将该存储库上传到 Github 时,我显然需要设置远程 URL。但是,当某人(例如我)克隆存储库并进行更改时,无需设置您自己的 URL 即可轻松推送更改,因此将更改推送到原始样板。

如何从存储库中删除远程 URL 并仍然在 Github 上托管它?

检查这个命令

 git remote remove origin

遥控器未设置开启GitHub;它是在克隆时设置的。克隆会设置一个远程 called origin by default,它指向您用来克隆的 URL。

几个选项:

  1. 首先不要克隆。

    您可以创建一个空存储库,然后在不设置远程的情况下从源存储库中拉取:

    git init foo
    cd foo
    git pull https://some.tld/foo/bar
    

    为了使这更容易,您可以创建一个 alias 一次性完成所有操作,例如通过将这样的内容添加到您的 ~/.gitconfig:

    [alias]
        clone-template = "!f() { git init \"\" && git -C \"\" pull \"\"; }; f"
    

    然后你会像这样使用它:

    git clone-template https://some.tld/foo/bar foo
    

    其中 foo 是您要使用的本地目录名称。

  2. 克隆然后删除 origin 遥控器:

    git clone https://some.tld/foo/bar
    cd bar
    git remote remove origin
    

    为了使这更容易,您可以创建一个执行这两个操作的别名,如上所述。

    棘手的部分是知道克隆创建的目录的名称,以便您可以 cd 进入它。上面的别名需要本地目录作为参数来解决这个问题。

  3. 使用像 degit 这样的 third-party 工具进行无历史克隆。

    此处的主要缺点是 (a) 具有 third-party 依赖性,可能使用您不想设置的开发堆栈,以及 (b) 丢失所有提交历史记录以及远程。

    您可以通过执行 git clone --depth=1 之类的操作然后删除 .git/ 目录来缓解 (a),但这仍然会破坏您的所有历史记录。如果您要这样做,我建议您像第二个选项一样取消设置 origin