当将更改推送到远程分支时,git说所有内容都是最新的

pao*_*lim 10 git push cherry-pick git-checkout

我有一个远程存储库(origin/master)中的提交,我想把它放在从该存储库创建的分支(origin/remote_branch)中.

当我结账到那个远程分支

git checkout -b mybranch origin/remote_branch
Run Code Online (Sandbox Code Playgroud)

然后樱桃挑选了我做的承诺

git cherry-pick 9df63616b0428cf6edc4261adb533a1ac516b9a0
Run Code Online (Sandbox Code Playgroud)

当我试图推动时,git说什么都是最新的.

git push
Run Code Online (Sandbox Code Playgroud)

有什么我做错了吗?

Pat*_*otz 24

根据您的Git版本,它可能会尝试使用匹配的名称推送分支,即masterto origin/masterremote_branchto origin/remote_branch.如果您的源存储库没有命名分支,mybranch那么它认为没有任何更新.

要覆盖此缺省值,您可以显式告诉git将哪个分支用作source(mybranch)以及将哪个分支用作远程存储库(remote_branch)上的目标:

git push origin mybranch:remote_branch
Run Code Online (Sandbox Code Playgroud)

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

git config --global push.default tracking
Run Code Online (Sandbox Code Playgroud)

我发现这更直观,我认为这是你正在寻找的行为.检查git config手册页中push.default选项.另请查看git push手册页中的Examples部分,了解如何覆盖默认行为.