この問題の簡単な解決策は、git stash
を実行する前に、あなたが必要とするすべてのチェックを行い、小さなスクリプトを記述して作成することですそれのための別名エイリアス。もちろん、git stash
の代わりにそれを使用することを忘れないでください。
手順:~/bin/stash-force.sh
として保存
#!/bin/bash
git stash save "${1:?You must provide a message.}"
:
は、スクリプトは、このような単純なことができます。
それを実行可能にします。
git config --global alias.stash-force '!~/bin/stash-force.sh'
スクリプト名の前に感嘆符がエイリアスの残りの部分をGitに伝えます:
chmod +x ~/bin/stash-force.sh
このスクリプトに展開Gitのエイリアスを作成します。 valueは独自のスクリプトです。 Gitは、git stash-force
コマンドの元の引数を使って実行します。
それを使用してください:あなたは、引数なしで実行すると、
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コマンドと同じ名前のエイリアスは無視されます。
sourcetreeを使用する場合は、コメントは省略可能です。 –
私はコマンドラインが好きなのでSourceTreeを使いたくありません。 – HNygard
'git stash'はコミットを行います(実際は2つのコミット)。 stashコミットに関する最も特別なことは、それがまったくどのブランチにもないことです。しかし、たくさんのひみつを作っているのであれば、それらを管理するのに役立つので、それらのブランチで自分自身をコミットしてください。コミットを公開していない限り、結果を除外してリベースまたはリセットすることができます。 – torek