我正在尝试将提交从一个分支 A 推送到另一个分支 B
所以当我使用以下命令时--
dev > git push origin dev:staging
然后它说,
! [拒绝] dev -> staging(首先获取)
问题是,当我执行 gitbranch -a
时,它没有列出暂存分支。
非常感谢任何帮助。提前致谢。
最佳答案
您的 git push
命令表示:
- 您自己的 Git 应该通过存储在您的
源
中的 URL 调用另一个 Git。 - 然后,您的 Git 应该向他们提供由您的
dev
标识的提交,以及您拥有而他们没有的所有早期提交。 (运行 git rev-parse dev 来查看提交哈希 ID,或者运行 git log dev 来查看该提交以及可从该提交访问的所有早期提交。)< - 将这些提交保存在某个临时位置后,您的 Git 应该要求他们的 Git 将他们的
暂存
设置为第 2 步中使用的哈希 ID。
在这些步骤中,没有任何地方建议您的 Git 应该在您的存储库中使用名称 staging
执行任何操作。您只需要求他们在他们的存储库中使用名称staging
做一些事情。
您可以运行 git fetch origin
来指示您的 Git 在同一 URL 调用其 Git。然后,您的 Git 将让其 Git 列出所有分支名称,以及这些分支名称指向的提交哈希 ID。对于您没有的每个此类提交,您的 Git 将从他们的 Git 获取该提交以及您他们拥有的任何早期提交不要。当您的 Git 完成获取所有这些新提交后,您的 Git 将在您的存储库中更新甚至创建名称,以记住它们的名称 分支提示提交哈希值。
您的 Git 将使用的名称类似于 origin/staging
:您的 Git 将重命名它们的分支名称,以创建您的远程跟踪名称。如果他们有 master
、dev
和 staging
,您的 Git 将更新或创建您的 origin/master
、origin/dev
和 origin/staging
。
关于git - 在命令行中看不到 git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49451923/