意外地使用现有名称创建了新分支

She*_*ohn 4 git version-control branch duplicates

我刚刚开始使用 git 分支,昨天我创建了一个分支foo并将其推送到远程。今天我想在家工作,所以在运行了一次 pull 后,我不假思索地打字了git checkout -b foo

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

我尝试重命名分支,git branch -m foo bar希望它仅处理本地分支并删除重复的分支名称,但可惜git checkout foo发出了消息error: pathspec 'foo' did not match any file(s) known to git.

如何检索我昨天创建的分支?

Kla*_*urn 5

您遇到的问题是您创建的新分支没有跟踪您想要的远程分支。

我认为纠正这个问题的最“正确”方法是设置分支来跟踪预期的远程分支:

git checkout foo
git branch -u origin/foo
Run Code Online (Sandbox Code Playgroud)

完成此操作后,您可以将本地分支移动到远程分支的当前提交

git reset origin/foo
Run Code Online (Sandbox Code Playgroud)

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

(替代方案resetrebaseon origin/foo,但我不会推荐给初学者)