Git将第二个文件添加到旧存储库而不是新存储库

Posted

技术标签:

【中文标题】Git将第二个文件添加到旧存储库而不是新存储库【英文标题】:Git adds second file to old repository and not to new repository 【发布时间】:2020-02-27 23:40:45 【问题描述】:

我有两个文件夹和 .git(在 git init 之后),我想创建 2 个存储库:

    C CPP

我创建了 C 存储库:

git init
git add C
git commit -m "."
git remote add origin https://github.com/tomerbarak11/C.git
git push -u origin master

然后我像这样创建了第二个存储库 CPP:

git init
git add CPP
git commit -m "."
git remote add origin https://github.com/tomerbarak11/CPP.git
git push -u origin master

首先,当我出于某种原因执行第二次提交时,它开始重新上传文件(它已将它们添加到 add 中) 当我写提交时,它说fatal: remote origin already exists. 无论如何我都尝试推送它,它将所有文件添加到 C 存储库中,而 CPP 存储库为空。

如何解决?

【问题讨论】:

听起来你每次都在同一个目录中运行git init。一旦 Git 创建了一个存储库,second git init 在很大程度上是一个无所事事的操作。 (后来的git init 有钩子和钩子模板的副作用,但这是你没有使用的高级功能。) 【参考方案1】:

git init 根据其手册 (https://git-scm.com/docs/git-init) 在当前目录中创建一个 git 存储库。这意味着当您运行git init; git add C 时,它将在您的当前目录中创建一个存储库。

您可能打算创建一个名为 C 的新存储库和一个名为 CPP 的新存储库,如下所示:

    假设您当前位于名为~/src 的目录中:git init C
      这将创建一个新目录 C,其中包含一个文件夹 C/.git,它是存储库的根目录。 cd C; git remote add origin https://github.com/tomerbarak11/C.git,将正确设置原点
    返回~/src,重复:git init CPP
      这将创建一个新目录 C,其中包含一个文件夹 C/.git,它是存储库的根目录。 cd C; git remote add origin https://github.com/tomerbarak11/CPP.git,将正确设置原点

如果你在没有目录名的情况下运行git init,它将创建一个本地 .git 存储库,并且你会不小心一直在其中操作。

【讨论】:

以上是关于Git将第二个文件添加到旧存储库而不是新存储库的主要内容,如果未能解决你的问题,请参考以下文章

构建被配置为更喜欢设置存储库而不是项目存储库,但存储库“maven”是由构建文件“build.gradle”添加的

合并两个 Git 存储库而不破坏文件历史记录

有没有什么办法可以将我的存储库下载为zip并添加到我的本地存储库而不是使用git(repo snc命令)?

将第二个表中的第二个(条件)结果添加到 SQL 查询

Git 存储库混乱

将 2 个 git 存储库与冲突结合在一起后,我希望 Powershell 中的 git mergetool 始终为每个文件选择(m)修改