【问题标题】:Not able to push files into GitHub using git commands无法使用 git 命令将文件推送到 GitHub
【发布时间】:2018-11-15 09:47:18
【问题描述】:

请帮我解决这个小错误。我正在尝试将 3 个文件从我的本地仓库推送到远程仓库,而远程仓库有一个 .gitignore 文件。正如错误所说,我已经尝试过拉动,但我又遇到了同样的错误。我不想强行推动。在此之前,我在 GitHub 上创建了一个空仓库,并成功推送了所有 3 个文件。后来我删除了那个 repo,并用 .gitignore 创建了另一个 repo,它与旧的同名。如果您解释正在发生的事情,那就太好了。 我已尝试拉取远程仓库以便更新我的本地仓库,但没有成功

【问题讨论】:

  • 仅仅因为你的仓库有相同的名字并不意味着它是同一个仓库。您是否将新存储库的远程设置为 GitHub 上的远程存储库,或者新存储库是远程的克隆?如果你只是从头开始创建一个新的仓库并添加了一个提交,那么它显然与 GitHub 上的仓库不同,因为它们不共享一个共同的提交。
  • 是的,我做到了。
  • 不要提供可以是文本的图像信息。

标签: git github push git-bash


【解决方案1】:

每个 git 存储库都包含一个 .git 隐藏目录,其中包含存储库的详细信息。当您运行git init 时,您将创建一个新的 git 存储库,包括一个新的 .git 目录。您在此目录中所做的第一次提交是初始提交 - 记录在存储库中的第一组更改。

如果您使用 git init 创建另一个 git 存储库并在其中进行提交,即使它具有相同的文件夹名称(实际上是不相关的)并且您提交了完全相同的文件,这个新存储库的初始提交也会不同于原始存储库的初始提交。

这两个存储库可能具有相同的名称和相同的文件,但它们不是同一个存储库并且它们没有共享历史记录。

现在,就您而言,您将原始存储库推送到 GitHub,然后删除了存储库的本地副本。如果您在本地创建了另一个存储库,即使它可能具有相同的文件,它也没有与 GitHub 上的远程相同的提交历史记录,因此无法从远程拉取或推送到远程。

我建议将远程存储库从 GitHub 克隆到您的本地计算机,并将该存储库用于将来的拉取和推送。

【讨论】:

  • 如果你从 GitHub 上删除了存储库(即向下滚动,输入存储库名称,点击红色按钮),那么远程不再存在,因此推拉显然不再起作用。假设您在 GitHub 上创建了一个与本地副本分开的新存储库,那么这个答案应该在一定程度上仍然适用,因为它们是两个独立的存储库,没有共享历史记录。
【解决方案2】:

如果其他人也在处理 repo,你的分支可能会分离。尝试变基,然后提交/推回。

【讨论】:

    【解决方案3】:

    您可以参考this。您可以使用 --allow-unrelated-histories 强制合并发生。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 2015-12-16
      • 2020-08-01
      相关资源
      最近更新 更多