不小心创建了具有现有名称的新分支
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
,但我不建议初学者这样做)
我刚开始使用 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
,但我不建议初学者这样做)