git 在将更改推送到远程分支时说一切都是最新的

标签 git push git-checkout cherry-pick

我在远程存储库 (origin/master) 中有提交,我想将其放入从该存储库 (origin/remote_branch) 创建的分支中。

当我 checkout 到那个远程分支时

git checkout -b mybranch origin/remote_branch

然后挑选我所做的提交

git cherry-pick 9df63616b0428cf6edc4261adb533a1ac516b9a0

当我尝试推送时,git 说一切都是最新的。

git push

我做错了什么吗?

最佳答案

根据您的 Git 版本,它可能会尝试推送具有匹配名称的分支,即 masterorigin/masterremote_branchorigin/remote_branch。如果您的原始存储库没有名为 mybranch 的分支,那么它认为没有什么可更新的。

要覆盖此默认值,您可以明确告诉 git 将哪个分支用作源 (mybranch) 以及将哪个分支用作远程存储库 (remote_branch) 的目标):

git push origin mybranch:remote_branch

有一个配置选项告诉 git 默认推送到远程跟踪分支:

git config --global push.default tracking

我发现这更直观,我认为这就是您要寻找的行为。检查 git config man page 中的 push.default 选项.另请查看 git push man page 中的示例部分查看如何覆盖默认行为。

关于git 在将更改推送到远程分支时说一切都是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1391732/

相关文章:

git - 阻止 Git 推送 secret (但被跟踪)文件

git - 具有两个不同父提交的两个提交之间的差异

git - Azure Devops : Checkout step slow: to many objects?

xcode - 撤消单个文件 Git Checkout

Git,如何将 origin/master 重置为提交?

git - 主分支是 "Already up-to-date",但它是 "ahead of origin/master by 4 commits"?

独立开发者的 GIT

javascript - 如何在不使用信号器和拉取的情况下创建推送消息?

xcode - 如何从源代码管理中删除静态库?

node.js - 设计实时 Web 应用程序(Node.js 和 socket.io)