【问题标题】:Git Branch is not a remote Branch in StashGit 分支不是 Stash 中的远程分支
【发布时间】:2017-01-16 09:57:16
【问题描述】:

我在将 GIT(版本 1.8.5.6)与 stash 结合使用时遇到问题。我已经使用命令在我的开发系统上创建了本地分支

 git checkout -b <my new branch> 

毕竟我将我的新分支推送到远程存储服务器:

 git push -u origin <my new branch> 

现在我无法在我的测试系统上签出我的新分支,因为 Stash 中的分支不是远程分支。如果我运行以下命令, 我没有看到所有的分支:

git branch -a

git branch -r

结果我在 stash 中的分支没有被创建为远程分支。 现在我有两个问题。 我的分支怎么不是远程分支?

是否可以更改分支并将其转换为远程分支?

这里有一些进一步的信息:

git remote show
 --> origin
git ls-remote
 --> shows all branches including that ones I have pushed from my dev system.

感谢您的推荐,

最好的问候 约恩

【问题讨论】:

  • 好的,我想我已经自己解决了这个问题。我的本地存储库以某种方式损坏。我删除了我的本地仓库,包括 .git 目录。之后我克隆了远程存储库。在下文中,我能够从 Stash 服务器签出最新的分支。

标签: git branch remote-server git-stash


【解决方案1】:

Git(大部分)是一个离线工具。您的测试系统在联系远程之前不知道远程上新创建的分支。您的 git ls-remote 会这样做,因此会看到新分支。

您可以git fetch --all 让您的本地 git 了解上游存在的所有标签和分支。

通过重新克隆您的存储库,您实际上做了同样的事情:获取所有远程标签和分支,但您重新下载了您已经拥有的所有对象。

反之则不然:git fetch --all 不会删除上游不再存在的分支。为此,您需要git remote prune origin

【讨论】:

    猜你喜欢
    • 2012-10-22
    • 2015-12-17
    • 2017-05-15
    • 2020-04-04
    • 2021-03-07
    • 2014-02-04
    • 2015-10-19
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多