問題タブ [git-alias]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - コマンドライン引数のリスト全体をエコーする gitconfig エイリアスのエコー
長い間、エイリアス ファイルに次のエイリアスがありました。
それは私にとってオリジナルではありませんでした。検索すると、多くの場所で表示されます。しかし、最近、エイリアスに奇妙な問題が発生し始めました。私が無視するものはすべて、.gitignore ファイルに同じ行に 2 回配置されます (スペースのみ)。
少しデバッグを行ったところ、実際に起こっていることは、 への呼び出しが期待どおりにecho $1
エコー$1
されているだけでなく、引数の文字列全体がエイリアスにエコーされていることであることがわかりました。
これをテストするために、新しいエイリアスを作成しました。
$1
最後の行が最も興味深いのは、echo 呼び出しが正しく評価されている間、それに追加された引数のセット全体を取得していることを明確に示しているからです。実際、何かをいじって に変更$1
すると$9
(そして を満たさない場合$9
)、次のようになります。
これは Git バージョン 1.8.5 から 1.9.0 で発生することを確認しており、Git バージョン 1.7.1 では発生しないことを確認しています。残念ながら、1.7.1 と 1.8.5 の間でテストすることはできません。
ここで何が起こっているのかについての洞察を持っている人はいますか? それは私のエイリアスのいくつかを壊します...
git - コミットするgitエイリアスを使用した不明なスイッチ「m」
私の .gitconfig には、次のエイリアスがあります。
アイデアは、すべての変更を追加してコミットすることです。ただし、Git がメッセージを表示しているため、これで成功していませんerror: unknown switch 'm'
。
git - Git 構成ファイルのローカル変数
次のようなさまざまな種類のログのエイリアスのセットがあります。
ログ エイリアスには多くの種類がありますが、それらのほとんどは同じ形式を共有しています。共通部分の内容でローカル変数を定義するにはどうすればよいですか?
理想的には、そのために環境変数を使用したくない
git - .gitconfig でフォーマットされた git エイリアス
ここで説明したのとほぼ同じことを試みましたが、同じ問題があります。
もちろん、このトピックの解決策は機能します。
しかし、自分の git 関数を git 名前空間にグループ化する、つまり を実行したいとしましょうgit gl "some time ago"
。しかし、.gitconfig で関数を直接定義しようとすると:
gl = "!f() { git log --all --pretty=format:'%h %cd %s (%an)' --since="$1"; }; f"
、
以前と同じエラーが発生しました - fatal: ambiguous argument ...lalala...
。
関数が .bash_profile で定義され、git エイリアスから呼び出された場合でも、同じことが起こります。
「グローバル」関数を使用することはそれほど大きな問題ではありませんが、知りたいのですが、なぜこれが起こるのですか? そして、.gitconfigでそのような関数を定義することはまったく可能ですか?
configuration - Git:「add --update TOPLEVEL_DIR」のエイリアスを作成していますか?
私はしばしば自分がタイピングしていることに気づきます
リポジトリ全体で変更されているが追跡されているすべてのものを追加する意図があります。ただし、サブディレクトリにいると面倒で退屈になります。たとえば、すべての変更が含まれsrc/
ているが、現在test/util
ディレクトリにいる場合は、次のように入力する必要があります
これはエラーが発生しやすく、時間がかかります (../
頭の中で の数を計算する必要があるため)。
au
トップレベル (通常は、ディレクトリを含むパスの最初の祖先ディレクトリ) を自動的に検出するような git エイリアスを作成したいと考えています.git
。から git を使用するため、完全に移植可能である必要はありませんbash
。何か案は?
windows - Git スクリプト関数 (Windows) のコマンドが Git リポジトリの下のサブフォルダーで期待どおりに機能しない
私は次のフォルダ構造を持っています...
.gitconfig ファイルでスクリプト関数を修正しようとしていて、現在のディレクトリを知る必要がありますが、奇妙な動作が発生しています。
すべてのテストで、Windows PowerShell をホストする Console2 ウィンドウを開いて、git コマンドを実行しました。
プロンプトで$pwdと入力すると、C:\GitRepo\IgnoredFolder\SubRepo が「正しく」表示されます。「正しく」と言いますが、*Nix ではなく Windows 形式です。
私の .git 構成では、次のエイリアスを作成しました。
ここで、プロンプトからgit testと入力すると、/c/GitRepo の「正しくない」表示が得られます。Windows と *Nix のフォーマットを無視して、/c/GitRepo/IgnoredFolder/SubRepo を返すことを期待/望んでいたため、「正しくない」と言います。
他のコマンドも同じように動作します (つまり、現在の作業ディレクトリではなく、.git リポジトリを含む最初のフォルダーで動作します。
たとえば、基本的に作成したい実際のエイリアスは、init、add、commit、remote、config のすべてを 1 つのコマンドにまとめたものです。疑似エイリアスは次のようになります...
ただし、現在のディレクトリ (「操作」したい新しい SubRepo フォルダー) で実行する代わりに、git リポジトリ (この場合は c:\GitRepo) を含む最初の祖先フォルダーで動作します。
リポジトリを含むフォルダー内で見つかるかどうかに関係なく、現在のディレクトリで git エイリアス スクリプト関数を機能させる方法はありますか?
前もって感謝します。
githooks - ブランチを親にマージするようにgitに依頼するにはどうすればよいですか
ブランチを親にマージするエイリアスを作成する方法はありますか? 私はできることを知っています:
ただし、前のブランチが親ブランチである単純なケースでのみ機能します。私の知る限り、そこにはブランチがないため、git はこの種の情報を追跡しません。しかし、プラグインまたはフックセットとして既に実装されていることを願っています。
前もって感謝します。
git - 複数のコマンドを結合するための Git エイリアス: git checkout および git status
ローカル ブランチをチェックアウトするたびに、git status を実行していることに気付きました。チェックアウトをより効率的にするために、エイリアスに git ステータスを追加したいと考えています。
チェックアウト用の次の単純なエイリアスが既にあります。
「git co」にどのような引数を指定しても、常に実行されるように変更したいと思います。
たとえば、次のいずれかを行うことができ、エイリアスは後で git status を実行する必要があります。
git - Git でエイリアスを構成する
1 行に複数のコマンドを作成したい。例:
可能です?
これは私の .gitconfig です:
git - 見込みのある Git エイリアス名が利用可能かどうかを確認する確実な方法はありますか?
Git を使用すると、独自のカスタム Git 動詞またはエイリアスを作成できます。
ただし、Git コマンドにあまり慣れていない場合は、既存の Git 動詞に対応するエイリアス名を選択できます。非常にばかげた例として、
パニックにならない; によるとgit config --help
:
スクリプトの使用に関する混乱とトラブルを避けるために、既存の Git コマンドを隠すエイリアスは無視されます。
ただし、その場合、Git は新しいエイリアスが無視されることを通知しません。
したがって、エイリアスを実際に定義する前に、予想されるエイリアス名が既存の Git 動詞に対応しているかどうかを確認する堅牢な (そして将来性のある) 方法があるかどうか疑問に思っています。
<alias-name>
の出力でを検索することを考えていましgit help --all
たが、後者にはすべての Git 動詞のリスト以上のものが含まれているため、そのようなアプローチがどれほど堅牢かはわかりません...
何か案が?