我在远程存储库 (origin/master) 中有提交,我想将其放入从该存储库 (origin/remote_branch) 创建的分支中。
当我 checkout 到那个远程分支时
git checkout -b mybranch origin/remote_branch
然后挑选我所做的提交
git cherry-pick 9df63616b0428cf6edc4261adb533a1ac516b9a0
当我尝试推送时,git 说一切都是最新的。
git push
我做错了什么吗?
最佳答案
根据您的 Git 版本,它可能会尝试推送具有匹配名称的分支,即 master
到 origin/master
和 remote_branch
到 origin/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/