【问题标题】:Is Git commit and Git Push Branch SpecificGit 提交和 Git 推送分支是特定的吗
【发布时间】:2021-05-31 10:14:11
【问题描述】:

我目前正在开发一个 git 分支,所以我克隆了它并开始像往常一样修改东西,但是如果我以通常的方式提交(git add . -> git commit -m "" -> git push)会它推到正确的分支?还是我需要执行特定命令,我正在处理生产中的代码,所以我不会不小心推送到错误的分支

【问题讨论】:

  • 最可靠的方法是不要省略参数。使用git push origin HEAD:master 比使用git push 遇到的错误更少,通过在冒号前显式指定origin 之类的远程、HEAD 之类的源修订版以及冒号后之类master 之类的目标引用。省略参数时,可能会因配置不当而导致命令失败。

标签: git github branch


【解决方案1】:

运行git branch -vv 将显示默认情况下git push 将推送到哪个分支。例如,在我系统上的本地存储库中,运行 git branch -vv 会显示:

$ git branch -vv
* devel              c557af4 [origin/devel: ahead 14, behind 26] Add tests for create_sprint_board
  devel.stgit        f51dcdd goto
  master             4239189 [upstream/master: behind 6] disable create-sprint-boards pending #10
  save/before-squash d5b7980 add tests for create_sprint_board
  work               8bf0290 log warning if --copy-cards and no previous board

在这里我们看到在devel 分支上运行git push 将推送到名为origin 的远程的devel 分支,在master 分支上运行git push 将推送到@ 987654331@远程分支upstream

其他分支——比如work——还没有与之关联的“跟踪分支”。在这些分支上,运行 git push 将导致:

fatal: The current branch work has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin work

【讨论】:

  • 请注意,这假设您拥有 Git 2.0 或更高版本和/或将 push.default 配置为 simple。 Pre-2.0,默认为matching推送。
  • 一个有效的观点,虽然 Git 2.0 是在 2014 年发布的,所以我认为这几天可能是一个安全的假设。
  • 嗯,除了所有这些问题不断出现,甚至直到上个月,这些问题都来自使用古老的 RedHat 或 CentOS 系统、运行 Git 1.7.9 或 1.8.3 的人。 (为什么,我不确定,但它似乎仍然非常受欢迎......)
猜你喜欢
  • 2013-10-09
  • 2016-07-06
  • 2020-10-08
  • 2016-06-06
  • 2020-10-19
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多