私はブライアンに同意します。マジットが単純なキートリガーを介して行うことができないことを何をしようとしていますか? おそらく、すでにキーバインディングがあります。C-z
シェルにドロップしてコマンドを実行するだけではない場合は、次のように入力fg
して、emacs をフォアグラウンドに戻します。
編集:私のフローは次のようになります。
- 私は仕事で一日を始めます。
git diff
前日からコミットされていない変更があるかどうかを確認するためだけにコマンド ラインに入力します (色を有効にすることを忘れないでください! )コマンド ラインでこれを magit と同じように行う理由は、まだ emacs を使用していないためです。
- コミットされていないファイルを emacs
emacs file1 file2
で開くか、作業しようとしているいくつかのファイルを開きます。
- バグを修正するか、新しい機能を完成させるまでコーディングします。
- emacs で、入力
C-c i
して Magit ステータス ウィンドウを開きます。
- [変更] セクションまで下にスクロールし、各ファイルの横にあるタブを押して、各変更の差分を表示します。
s
これらの変更をステージングするか、それらの変更をステージング解除するために押しu
ます。
- 必要に応じて、差分コードを調べて同じことを行い、コードのセクションをステージングおよびステージング解除する
s
こともできます。u
どこかにデバッグ コードがあり、それを強制終了したい場合に便利です。
- すべての変更が適切に表示され、ステージングされていることを確認したら
c
、magit-edit-log を開くように入力します。コミット メッセージを入力C-c C-c
してから、入力してコミットします。それからそれP
を押します。終わり!
これは多くの手順のように聞こえますが、すぐに自然になり、一連の変更全体を比較してステージングし、メッセージでコミットするのに、文字通り 30 秒かかります。Emacsにとどまっている間ずっと。コマンドラインにドロップダウンするよりもはるかに簡単です。
Magit 経由でプッシュを行うと、エラーが返されることがあります。通常は、プッシュする前にプルする必要があるリモート リポジトリの新しいコードが原因です。この場合F
、変更をプルP
してからプッシュします。正直なところ、magit を介してプルする代わりに、通常、この状況では、シェル、、およびCtrl-z
にドロップダウンします。git pull
git push
編集: Magit のデフォルトの差分色がかなりひどいものだったことを覚えていると思います。私は .emacs で以下を使用しています。どこかから盗んだに違いありません。
;; change magit diff colors
(eval-after-load 'magit
'(progn
(set-face-foreground 'magit-diff-add "green3")
(set-face-foreground 'magit-diff-del "red3")
(when (not window-system)
(set-face-background 'magit-item-highlight "black"))))
(add-to-list 'auto-mode-alist '("COMMIT_EDITMSG$" . diff-mode))
(eval-after-load 'diff-mode
'(progn
(set-face-foreground 'diff-added "green4")
(set-face-foreground 'diff-removed "red3")))