Git - 删除存储库后拒绝推送初始代码

Git - Refusing To Push Initial Code After Deletion of Repository

好的,我对Git的经验非常有限,而且非常对它的耐心有限,因为它提供的错误是'用简单明了的英语。我只是想将我的代码上传到我们的内部 Bitbucket 服务器 - 简单明了。

我在 BitBucket 中创建了一个存储库,运行 如下:

cd existing-project

git init

git add --all

git commit -m "Initial Commit"

git remote add origin https://username@bitbucket.company.org/scm/co/project-0987654321.git

git push -u origin master

问题是,我意识到我在 Bitbucket 中创建存储库名称时弄错了,所以我删除了存储库并使用正确的名称重新创建了它,现在 运行在我的本地机器说:

"On branch master

Initial commit

nothing to commit"

当我添加 Bitbucket 来源时,它显示:

"fatal: remote origin already exists"

当我 运行 按下 git 时,它说:

"error: src refspec master does not match any

error: failed to push some refs to 'https://username@bitbucket.company.org/scm/co/project-0987654321.git'"

那么我怎样才能让它在本地机器上恢复到“正常,准备提交,可以开始”的状态呢?我显然在我的缺乏经验中屠杀了一些东西。

编辑:

"git status" 表示我是:

On branch master

No commits yet.

所以我 运行: "git b运行ch --set-upstream-to origin/master" 根据 , 我得到:

branch 'master' does not exist

从字面上看是没有意义的。 我已经尝试了删除本地 .git 存储库和 Bitbucket 存储库的所有变体,并从头开始尝试无济于事。

好像文件被“污染”了,无法上传。

回到复制和粘贴的时代……这就是我真正想要做的。我从来不知道这样的系统。

删除并再次添加 origin,然后推送您的代码。或者创建一个名称不是 origin.

的新遥控器

编辑:当您在重新创建 origin 后初始推送到新的 repo 时,请执行 git push -u origin master 以设置主分支的上游引用。 git clone 会自动为 master 分支(以及克隆时远程仓库中存在的任何其他分支)执行此操作,但 git add remote 不会。

这部分:

On branch master

Initial commit

nothing to commit

是个坏消息:这意味着您在一个完全空的存储库中,即没有提交,也没有要提交的文件。

如果您的 work-tree 中有包含有用数据的文件,请确保暂时保留它们,因为现在,此 Git 存储库中什么都没有它。 (您 work-tree 中的文件实际上并不 存储库中。)

此状态——initial commitnothing to commit——不应发生在:

之后
git commit -m "Initial Commit"

所以 something 这里是严重错误的,但是从你在问题中包含的内容来看,不清楚是什么。我怀疑在这句话中:

I deleted it and recreated it with the correct name

我们掩盖了某种致命的 Git 罪过,也许是通过代词“它”。您删除的是什么“它”?如果您只是通过他们的 Web 界面删除了 Bitbucket 存储库,那应该没问题,但是您不应该处于这种 Initial commit 状态。

如果您删除了两个 存储库——本地存储库 Bitbucket 存储库——然后re-created 本地存储库,那也可以,尽管您需要从某个地方获取所有内容(也许是文件的另一个副本)。但是 会消除:

fatal: remote origin already exists

错误,所以也不可能是这样。

做的是:

$ mkdir t
$ cd t
$ git init
Initialized empty Git repository in [path]
$ git add --all
$ git commit -m "Initial Commit"
On branch master

Initial commit

nothing to commit
$ 

这是因为 git add --all 没有添加任何内容。没有文件。 work-tree 完全是空的(除了包含存储库本身的隐藏 .git 目录):

$ ls -a
.       ..      .git

如果是这种情况,解决方案是从其他地方获取所有 work-tree 文件,并在第一次提交之前再次使用 git add --all 步骤。