不小心创建了具有现有名称的新分支

Accidentally created new branch with existing name

我刚开始使用 git 的分支,我昨天创建了一个分支 foo 并将其推送到远程。今天我想在家工作,所以在 运行 之后我想都没想就打字了 git checkout -b foo

我知道我不应该添加 -b 选项,因为我收到一条消息 Switched to a new branch 'foo' 并且我昨天写的代码 none 出现在我的文件夹中所以我图我不小心弄乱了分支名称。

我尝试 renaming 使用 git branch -m foo bar 的分支,希望它只处理本地分支并对分支名称进行重复数据删除,但是 git checkout foo 发出消息 error: pathspec 'foo' did not match any file(s) known to git.

如何找回昨天创建的分支?

您 运行 遇到的问题是您创建了一个新的 b运行ch,它没有跟踪您想要的远程 b运行ch。

我认为最 "right" 更正此问题的方法是设置 b运行ch 以跟踪预期的远程 b运行ch:

git checkout foo
git branch -u origin/foo

完成后,您可以将本地 b运行ch 移动到远程 b运行ch

的当前提交
git reset origin/foo

然后您可以添加并提交任何本地更改。然后像往常一样拉和推。

reset 的替代方法是 origin/foo 上的 rebase,但我不建议初学者这样做)