无法在命令行中看到git branch

时间:2018-03-23 14:27:14

标签: git

我正在尝试将提交从一个分支A推送到另一个分支B

所以当我使用以下命令时 -

dev > git push origin dev:staging 

然后它说,

! [rejected] dev -> staging (fetch first)

问题在于,当我git branch -a时,它不会列出暂存分支。

非常感谢任何帮助。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您的git push命令说:

  1. 您自己的Git应该使用origin
  2. 中存储的网址调出另一个Git
  3. 然后你的Git应该向他们提供你dev确定的提交,以及你所拥有的所有他们不承认的提交。 (运行git rev-parse dev以查看提交的哈希ID,或git log dev以查看该提交以及从该提交可以访问的所有早期提交。)
  4. 在将这些提交保存在某个临时位置后,您的Git应该让他们的Git将他们的 staging设置为步骤2中使用的哈希ID。
  5. 在这些步骤中,没有任何建议您的 Git应该在您的存储库中使用名称staging执行任何操作。您只需要让他们他们的存储库中使用名称staging执行某些操作。

    您可以运行git fetch origin指示您的Git在同一个网址上调用他们的Git。然后,您的Git将拥有所有分支名称的Git列表,以及这些分支名称指向的提交哈希ID。对于你所拥有的每个这样的提交,你的Git将从他们的Git获得提交以及他们拥有该提交的任何早期提交>你不。当您的Git完成所有这些新提交后,您的 Git将在您的存储库中更新甚至创建名称,以便记住他们的分支提示哈希。

    您的Git将使用的名称是origin/staging:您的Git将重命名其分支名称,以生成远程跟踪名称。如果他们有masterdevstaging,您的Git会更新或创建您的 origin/masterorigin/dev和{ {1}}。

答案 1 :(得分:0)

所以,我知道push正在告诉你要抓取,我知道你的本地仓库没有staging分支......但是当你说那是“问题”时,我不知道理解。

您说要将dev分支推送到远程staging分支。该错误表明远程staging分支存在并指向无法从dev ref访问的提交 - 这意味着更新不是快进的并且将是一个有效的“上游” rebase“,可能会失去他人的变化,并且肯定会将回购的所有其他用户置于一个他们需要恢复的糟糕状态。

这并不意味着staging应显示在您的本地回购的分支列表中,即使使用-a,因为您可能尚未从远程提取staging引用。如果您执行了git fetch,那么我希望origin/staging包含在git branch -a的输出中。