2016-08-10 12 views
1

私はgit stashをたくさん使っています。ほとんどの場合、メッセージを設定するのを忘れています(git stash save <message>)。 git stashのメッセージを強制的に

どう

は、それが通常の git stashコマンドに 力メッセージすることは可能ですか? Gitのスタッシュのヘルプページから

引数なしのgitスタッシュを呼び出すにはスタッシュが保存gitのと同等です。隠しは、デフォルトでは "WIP on branchname ..."と表示されていますが、コマンドラインを作成するときに、よりわかりやすいメッセージを表示できます。

+0

sourcetreeを使用する場合は、コメントは省略可能です。 –

+0

私はコマンドラインが好きなのでSourceTreeを使いたくありません。 – HNygard

+0

'git stash'はコミットを行います(実際は2つのコミット)。 stashコミットに関する最も特別なことは、それがまったくどのブランチにもないことです。しかし、たくさんのひみつを作っているのであれば、それらを管理するのに役立つので、それらのブランチで自分自身をコミットしてください。コミットを公開していない限り、結果を除外してリベースまたはリセットすることができます。 – torek

答えて

0

Gitに組み込まれているとは思わない。別名を定義するか、(別の名前の)ヘルパースクリプトを書きたいけどgit stashを呼び出すことに固執していない場合は、

  1. 非空であることをsave_stash()stash_msg変数をチェックする$(git --exec-path)/git-stashでシェルスクリプトを修正することができます、又は
  2. リネーム$(git --exec-path)/git-stash-origから$(git --exec-path)/git-stash単にこと以外$(git --exec-path)/git-stash-origを呼び出す新しい$(git --exec-path)/git-stash最初saveサブコマンドの場合に所与のメッセージのためのコマンドラインチェックで作ります。
0

何かを強制する必要はありません、あなたはあなた自身のメッセージを隠しておくことができます。 はgit stash save "Your stash message"

1

この問題の簡単な解決策は、git stashを実行する前に、あなたが必要とするすべてのチェックを行い、小さなスクリプトを記述して作成することですそれのための別名エイリアス。もちろん、git stashの代わりにそれを使用することを忘れないでください。

手順:~/bin/stash-force.shとして保存

#!/bin/bash 
git stash save "${1:?You must provide a message.}" 

  1. は、スクリプトは、このような単純なことができます。

  2. それを実行可能にします。

    git config --global alias.stash-force '!~/bin/stash-force.sh' 
    

    スクリプト名の前に感嘆符がエイリアスの残りの部分をGitに伝えます:

    chmod +x ~/bin/stash-force.sh 
    
  3. このスクリプトに展開Gitのエイリアスを作成します。 valueは独自のスクリプトです。 Gitは、git stash-forceコマンドの元の引数を使って実行します。

  4. それを使用してください:あなたは、引数なしで実行すると、

    git stash-force "message here" 
    

    ${1:?}パラメータ展開キックに及び、$1が設定されていないため、エラーメッセージが表示されます。もちろん

、今はgit stash-forceの代わりに、git stash(またはより良いエイリアスの短い名前を見つける)を実行することを忘れてはなりません。 stashを作成するにはgit stash-forceを使用し、他のstashコマンドにはgit stashを使用することを忘れないでください。

改良として

、あなたは、スクリプトを少し展開し$#(引数の数)と$1(最初の引数)の値をチェックのいずれかのエラーを表示して終了またはのすべてのサブコマンドに対してgit stashを呼び出すことができますgit stash。この方法で別名のみを使用し、git stashを完全に無視することができます。

ただし、別名を使用してgit stashを置き換えることはできません。 git config documentationでは、内部Gitコマンドと同じ名前のエイリアスは無視されます。

関連する問題