git - 在命令行中看不到 git 分支

标签 git

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

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

dev > git push origin dev:staging 

然后它说,

! [拒绝] dev -> staging(首先获取)

问题是,当我执行 gitbranch -a 时,它没有列出暂存分支。

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

最佳答案

您的 git push 命令表示:

  1. 您自己的 Git 应该通过存储在您的中的 URL 调用另一个 Git。
  2. 然后,您的 Git 应该向他们提供由您的 dev 标识的提交,以及您拥有而他们没有的所有早期提交。 (运行 git rev-parse dev 来查看提交哈希 ID,或者运行 git log dev 来查看该提交以及可从该提交访问的所有早期提交。)<
  3. 将这些提交保存在某个临时位置后,您的 Git 应该要求他们的 Git 将他们的暂存设置为第 2 步中使用的哈希 ID。

在这些步骤中,没有任何地方建议您的 Git 应该在您的存储库中使用名称 staging 执行任何操作。您只需要求他们他们的存储库中使用名称staging做一些事情。

您可以运行 git fetch origin 来指示您的 Git 在同一 URL 调用其 Git。然后,您的 Git 将让其 Git 列出所有分支名称,以及这些分支名称指向的提交哈希 ID。对于您没有的每个此类提交,您的 Git 将从他们的 Git 获取该提交以及您他们拥有的任何早期提交不要。当您的 Git 完成获取所有这些新提交后,您的 Git 将在您的存储库中更新甚至创建名称,以记住它们的名称 分支提示提交哈希值。

您的 Git 将使用的名称类似于 origin/staging:您的 Git 将重命名它们的分支名称,以创建您的远程跟踪名称。如果他们有 masterdevstaging,您的 Git 将更新或创建您的 origin/masterorigin/devorigin/staging

关于git - 在命令行中看不到 git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49451923/

相关文章:

Git准系统 repo

git - 在 Makefile 中,如何获取 git commit 哈希并将其分配给变量?

git - 如何在 Git 中重定位

git - promise 直接在 Git Flow 中开发分支?

git - 仅构建已推送到的 Git 分支

android - .gitignore 不适用于 .cxx 文件夹

git - git rebase 和 git merge --ff-only 之间有区别吗

git - PR 请求是否与分支或分支中的特定提交相关?

git - 在 Visual Studio Code 中从 git 中排除文件夹

git - 如何处理 git push 上的 "rejected"?