9

私のワークフローでは、次のコマンドのペアをよく実行します。

$ git status
M README.txt
M some/long/file/name
$ git diff some/long/file/name

名前をコピーせずに長いファイル名をすばやく入力/ use_shortcat する方法はありますか (このアクションにはマウスを使用する必要があり、入力ほど速くはありません)。たぶん、ステータスリストから2番目に変更されたファイルはgit diff $2どこですか...?$2

4

5 に答える 5

5

別のツールをインストールせずに実行できる別の方法は、git status の出力を削除し、sed を介してパイプしてから、git diff に戻すことです。これは長いコマンドなので、.bashrc に入れてエイリアスを付けることができます。たとえば、これを .bashrc に入れると:

 myfunction() {
 git status --porcelain | sed -n "${1} s/^...//p' | xargs git diff
 }
 alias gd=myfunction

私はそれから行うことができます

>> git status
M main.cpp
M tipsy.cpp
M other.cpp
>> gd 2

そして、出力は2番目のファイルの git diff です。

編集:2つの別々のものを持つのはばかげていたので、2つのsedを1つにまとめました。

于 2015-08-17T19:12:25.233 に答える
4

このツール (SCM Breeze)は、必要なことを行うことができます。具体的には、ドキュメントのこの部分を参照してください。

ここに画像の説明を入力 たとえば、次のように入力する代わりに、ga が git add のエイリアスである場合:

$ ga assets/git_breeze/config* assets/git_breeze/install.sh You can

代わりに次のように入力します。

$ ga $e2 $e3 $e11 

しかし、SCM Breeze は ga を git_add_shortcuts 関数にエイリアスします。これは、整数と範囲を拡張するのに十分スマートであるため、入力する必要があるのは次のとおりです。

$ ga 2 3 11

上記のコメントでリンクした投稿にあるソリューションよりも、あなたのニーズに合っていると思います

于 2015-08-17T18:59:34.960 に答える
-3

それだけ:

git diff

または:

git diff --cached

次に、キーボードでスクロールします。

于 2015-08-17T18:53:50.737 に答える