ステータスバッファからを呼び出すmagit-push-current
とP P
、Magit 2.1.0
アップストリームが設定されていない場合、最初にブランチをどこにプッシュするかを尋ねられます。
以前使用していた名前を自動的に生成するにはどうすればよいですか?
ステータスバッファからを呼び出すmagit-push-current
とP P
、Magit 2.1.0
アップストリームが設定されていない場合、最初にブランチをどこにプッシュするかを尋ねられます。
以前使用していた名前を自動的に生成するにはどうすればよいですか?
回答:
更新:下記の「プッシュブランチ」は現在実装されています。詳細については、ブランチに関するドキュメントをご覧ください。
上流ブランチを一度設定する必要があります。あなたがいることを行ってたらP Pそれにプッシュし、あなたがステータスバッファ内unpulledとunpushed変更のリストを取得します(存在している場合)。
アップストリームブランチを設定するには、さまざまな方法があります。--set-upstream
プッシュポップアップからスイッチを使用できます:P -u P。または、アップストリームを設定し、他には何もしないコマンドを使用しますb u。
また、Magitは、「開始点」がブランチ名である場合、新しいブランチを作成するときに上流のブランチを自動的に設定するようになりました。これは、ローカルおよびリモートの「上流」で機能します。ただし、ローカルブランチを開始点として選択した場合は、プッシュするのに役立ちません。現在のリポジトリから現在のリポジトリへのプッシュは明らかに意味がなく、許可されていません。
したがって、「上流」ブランチが実際には別のローカルブランチであるP P場合、上流ブランチが構成されていないかのように動作し、とまったく同じように動作しますP e。アップストリームがまったく設定されていない場合も同様です。
これは、Gitの制限によるものです。あるブランチに関連付けることができるブランチは1つだけであり、そのブランチは「上流ブランチ」と呼ばれます。少なくとも「上流」と「公開」のブランチがあった方がいいでしょう。私は最終的にそれをMagitに実装するつもりです。問題#1485を参照してください。
したがって、プッシュできるようにしたい場合P P、「上流」ブランチは、たとえば「マスター」ではなく、「オリジン/マスター」でなければなりません。
git push
引数なしで常に実行されるプッシュバリアントを追加することを検討しています。これが何をするかは、Git構成にのみ依存します。
master
分岐origin/master
する必要がありますか
origin/master
セットからorigin/master
上流に分岐しますが、上流にあると期待していorigin/branch-name
ました。
P -p P <... completion ...> RET
注origin/branch-name
あなたはそれを入力する必要はありませんので、完了候補として提供されます。
--set-upstream
現在のブランチにまだアップストリームがない場合に自動的に有効になる次のアドバイスを使用します。
(defun magit-push-arguments-maybe-upstream (magit-push-popup-fun &rest args)
"Enable --set-upstream switch if there isn't a current upstream."
(let ((magit-push-arguments
(if (magit-get-remote) magit-push-arguments
(cons "--set-upstream" magit-push-arguments))))
(apply magit-push-popup-fun args)))
(advice-add 'magit-push-popup :around #'magit-push-arguments-maybe-upstream)
ido補完と組み合わせると、次のコマンドで新しいブランチをプッシュできますP P RET。
;; NOTE: requires ido-completing-read+
(setq magit-completing-read-function #'magit-ido-completing-read)
私は単に新しいブランチを作成してからb c
、.git/config
ファイルを編集して、origin/branch
すべてのmagit 2のものを探し回るのではなく、とにかく動作しないようです。
変化する:
[branch "fix_something"]
remote = .
merge = refs/heads/master
に
[branch "fix_something"]
remote = origin
merge = refs/heads/fix_something
これは機能しますが、同じことを実行するキーの組み合わせをmagit2でまだ見つけていません。リモートがoriginにまだ存在しないため、リモートを設定しようとしても機能しません。
bu
。しかし、これを使用するgit branch --set-upstream-to
と、ご存知のように、Gitは存在しないブランチをアップストリームとして設定できないため、Magitも設定できません。
some-branch-name
するorigin
ときは、おそらくタイプするだけでo TAB s TAB
、希望する名前を取得できます。