Magit-ブランチ名全体を入力せずにリモートブランチをローカルでチェックアウトするにはどうすればよいですか?


12

私はリモートブランチを持っていremote-branch-long-nameます。私はヘルム完了してチェックアウトmagitとき、私は入力することができますremote-branchし、origin/remote-branch-long-nameオプションとして表示されます。問題は、このブランチをローカルでチェックアウトするには、実際にはそのブランチに切り替えることができず、に切り替える必要があることですremote-branch-long-name (without the origin/ prefix)。helmは完了オプションとしてそれを提供しないため、ブランチ名全体を手動で入力する必要があります。

このユースケースで使用する必要がある別の関数はありますか、それとも関数を一緒にハックする必要がありますか?

回答:


22

解決しようとしている問題は、発生している問題ではないようです。Gitでは、リモートブランチをローカルで操作することはできません(origin/remote-branch-long-name表示されているのは単なる追跡ブランチです。直接操作することはできません)。Magitは、目的のワークフローに向かってガイドします。

一緒に作業したいので、origin/remote-branch-long-nameおそらくmagit-branch-and-checkoutb c)を実行する必要があります。選択するorigin/remote-branch-long-nameと、ローカルブランチ名の入力が求められ、デフォルトで「remote-branch-long-name」になります。これにより、ローカルブランチで変更を行う必要があります。変更が完了してプッシュするorigin/remote-branch-long-nameと、リモート追跡ブランチが更新されます。

スラッシュを含むローカルブランチを使用できますが、ローカルブランチ名にリモート名を使用すると、非常に混乱する可能性があります。Gitはローカルブランチがチェックアウトされたリモートを記憶しているので、自分で追跡する必要はありません。

ここでの私の答え(!)より完全な説明については、このページ aがリモコンについての概要であることがわかります。


7
ここでの切断は、Magitフローがgitフローと異なることです。を実行しgit checkout foofooブランチではなく、ブランチでorigin/fooある場合、gitは新しいブランチを作成し、foo追跡するように設定しますorigin/foo。したがって、gitは「チェックアウトするだけfooで、gitが必要なすべてを実行する」と考えるように教えます。しかし、これはmagitでは機能しません。走ることmagit-branch-and-checkoutが進むべき道です。
zck

4

magit v2.12.0以降、(チェックアウトローカルブランチ)にmagit-branch-checkoutバインドされたコマンドがありb l、それはまさに望みどおりのことを行います。詳細については、ドキュメント を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.