10

リモート リポジトリ (origin/master) にあるコミットがあり、そのリポジトリから作成されたブランチ (origin/remote_branch) に入れたいと考えています。

そのリモートブランチにチェックアウトするとき

git checkout -b mybranch origin/remote_branch

次に、私が行ったコミットを厳選しました

git cherry-pick 9df63616b0428cf6edc4261adb533a1ac516b9a0

git は、プッシュしようとすると、すべてが最新であると言います。

git push

私が間違っていることはありますか?

4

2 に答える 2

24

Git のバージョンによっては、名前が一致するブランチ (つまり、mastertoorigin/masterremote_branchto ) をプッシュしようとしている可能性がありますorigin/remote_branch。元のリポジトリに名前付きのブランチがない場合、mybranch更新するものはないと見なされます。

このデフォルトをオーバーライドするには、ソースとして使用するブランチ ( mybranch) とリモート リポジトリの宛先として使用するブランチ ( ) を明示的に git に指示できますremote_branch

git push origin mybranch:remote_branch

デフォルトでリモート追跡ブランチにプッシュするように git に指示する構成オプションがあります。

git config --global push.default tracking

これはより直感的であり、あなたが探している動作だと思います。git config の man ページpush.defaultでオプションを確認してください。また、デフォルトの動作をオーバーライドする方法については、 git push の man ページの「例」セクションを参照してください。

于 2009-09-08T03:17:23.283 に答える
0

最近の (2019+) バージョンの Git では、ブランチの作成は(紛らわしいgit switchよりも正確に)で行われます。git checkout

git switch -c mybranch --track origin/remote_branch

そうすれば、mybranchは自動的に にリンクされorigin/remote_branch、新しいコミットをgit pushにプッシュするだけで十分です。mybranchorigin/remote_branch

于 2019-12-31T17:28:42.483 に答える