Git の利用について
git.exe (Git for Windows) がインストールされてると、後述の Git 関連機能を利用できます。
標準的な場所(%PROGRAMFILES%\Git\cmd など)にインストールされている場合は自動的に検出されますが、そうでない場合は オプション設定 - 一般2 - その他 で設定してください。
ファイル情報の表示 / Gitビュアー / Git 補助コマンドの利用
ファイル情報の表示
直下に .git があるディレクトリ、またはその中の [..] 位置では、ファイル情報に以下の項目が表示されます。
- Remote URL
- リモートリポジトリのURL(https://〜)です。
.git/config 内の [remote "origin"] の内容から想定されるURLを表示しています。
GitHub、GitLab、BitBucket では多分大丈夫だと思います。
OpenGitURL コマンドを実行すると、カーソル位置項目に対応するページをブラウザで開けます(ファイル情報の右クリックメニューからも可能)。
- Git-Commit
- 直前のコミット情報です。括弧内はローカル参照、▶ は "HEAD ->" を表しています。
- Git-Status
- "git status --porcelain" の取得結果から、フラグごとのファイル数(インデックス/ワーキングツリー)を表示します。
例えば、ワーキングツリーに2個の変更されたファイルがある場合、"M:_/2" と表示されます。
SelGitChanged コマンドを実行すると、カレントで変更されているファイル(フラグが "?" 以外)が選択されます。
なおリポジトリの作業ディレクトリ下で、トップの [..] 以外の項目については、Remote URL のみが表示されます。
ファイル情報の右クリックメニュー「この項目を隠す」で非表示になっている項目は取得を試みません。
Git-Commit/Status の内容はキャッシュして再利用しますが(.git/index のタイムスタンプ変化やファイルリスト更新で再取得)、操作が滞るような場合には非表示にしてみてください。
なおキャッシュ情報は、INIファイルに保存され、次回起動時にも引き継がれます。また、RepositoryList コマンドによる「リポジトリ一覧」の表示にも用いられます。
Remote URL: https://github.com/Nekomimi1958/NyanFi_x64 Git-Commit: (▶master) v13.08 Add Git command Git-STATUS: M:_/2
Gitビュアー
- ブランチ一覧
-
画面の左側にはブランチ一覧があります、右クリックメニューから、チェックアウト(ダブルクリックやENTERキーでも可能)、ブランチの作成/削除/改名、マージ、タグ付け、リセットを行えます。
ブランチ一覧の下には、リモートブランチやタグ一覧を表示できます(右クリックメニューで表示/非表示を切り替え可能)。
- コミット履歴
-
画面右側の上部にはコミット履歴が表示されます。
デフォルトでは、表示されるコミット履歴数が100に制限されています。これを変更したい場合は、GitViewer コマンドの N〜 パラメータで指定してください。
コミット履歴の下部には検索バーがあり、検索語を入力することでコミットを上下方向に検索できます。入力欄の幅は▲ボタンとの境界をドラッグすることで変えられます。
検索バーには以下のようなツールボタンもあります。
- 更新(F5でも可)
- 一覧の表示を最新の状態に更新します。
- 待避
- 現在の作業内容をメッセージ付きで待避します(git stash save)。
待避した内容はコミット履歴の先頭に表示され、右クリックメニューから復帰や削除を行えます(git stash pop/apply/drop)。
- Console
- 標準的な場所にある git-bash.exe が起動します。見つからない場合、または別のものを指定したい場合は、バーの右クリックメニューから選択してください。
- GUI
- デフォルトでは標準的な場所にある git-gui.exe が起動します。バーの右クリックメニューから変更可能です。
右クリックメニューからは、タグ付け、チェリーピック、ブランチ名/コミットIDのコピー、ZIPアーカイブの作成(Pack コマンドのキーでも可)、コミット情報の表示(ENTERまたは ShowFileInfo コマンドのキーでも可)などを行えます。
また「一時アーカイブとして開く」では、コミットを一時アーカイブとして出力し、ファイラーに戻って反対側リストで開きます。リビジョンのファイルツリーを閲覧したい場合などに利用してください。
「このコミットまでの履歴を表示」では、制限数以降のコミットを表示することができます。更新ボタンを押すと最初の状態に戻ります。
- 差分概略
-
履歴でコミットを選択すると、下部にその差分の概略が表示されます。
下部バーのツールボタンで、カーソル位置のファイルに対して以下の操作を行えます。
- 追加(作業ツリーのみ)
- ファイルをインデックスに追加します。
- 取消(インデックスのみ)
- ステージングを取り消します。通常は "git reset HEAD 〜" を、HEAD がない場合は "git rm --cached 〜" を実行します。
- コミット
- ステージングされているファイルをコミットします。メッセージを入力するためのダイアログが表示されます。
なお、入力欄からキーで確定したい場合はCtrl+ENTERを押してください。
- 差分詳細(ENTERまたは ShowFileInfo コマンドのキーでも可)
- 親コミットからの差分詳細を一覧ダイアログで表示します。
- 編集(FileEdit コマンドのキーでも可)
- ファイルをテキストエディタで開きます。リポジトリ内のファイルは NyanFi の一時ディレクトリに出力して開きます("core.autocrlf=true" なら改行をCR/LFに変換)。
なお右クリックメニューの「このファイルの内容を表示」(TextViewer コマンドのキーでも可)によって、内容を一覧ダイアログで表示することも可能。
- Diff Tool
- 親コミットからの差分を、git に設定されている外部Diffツールで表示します。
- Blame
- 親コミットに対する blame を Git Gui で表示します。
また「このファイルのコミット履歴を表示」では、カーソル位置ファイルのみについてのコミット履歴を表示できます。更新ボタンまたはF5キーを押すと絞り込みが解除されます。
ブランチ一覧/コミット履歴間のフォーカス移動は、ToLeft / ToRight、ToParentOnLeft / ToParentOnRight コマンドが割り当てられているキーや、← / →キーで行えます。
コミット履歴/差分概略間は、ToRight / ToParentOnRight コマンドのキーや→キーで移動できます。
なお右クリックメニューは、アプリケーションキーやShift+F10キーの他に、ファイラーで ContextMenu コマンドが割り当てられているキーでも表示できます。
Git 補助コマンドの利用
ExeCommands コマンドの Git 補助コマンド を実行すると、カレントを作業ディレクトリとして、指定したコマンド/パラメータで git.exe が実行されます。
これによって、コンソールを開かなくても NyanFi から直接 Git コマンドを利用できます。
結果は、ログおよび定義済み変数 Buffer に出力されます。
入力したURLのリポジトリをカレントにクローン化
Input_":クローン:URL:URL" Test_URL!="" IfTrue Git_"clone %URL%" EndIfステータスをヒント表示
Git_status Hint_!%Buffer% WaitForKey Hintカーソル位置ファイルに対する変更履歴を一覧ダイアログで表示
Git_"log --follow -p -- %NamePart%" ListBuffer_"Git Log - %NamePart%"ステータスとコミット履歴をまとめて一覧ダイアログで表示
IfNotGit Warn_"Gitの作業ディレクトリではありません。" Exit Endif Git_status --porcelain --branch Set_RES=%Buffer% Add_RES<<"" Git_log --graph --decorate --oneline Add_RES<<%Buffer% Set_Buffer=%RES% ListBuffer_"Git Status/Log - %CurPath%"すべての変更内容をインデックスに追加し、入力したメッセージでコミット
Input_":%CurPath%:コミットメッセージ:MSG" Test_MSG=="" IfTrue_Exit Git_add -A Set_RES=%Buffer% Add_RES<<"" Git_commit -m "%MSG%" Add_RES<<%Buffer% Set_Buffer=%RES% ListBuffer_"Git Add/Commit - %CurPath%"ポップアップメニューでブランチを選んでチェックアウト
Git_branch ReplaceBuffer_/^\$ git .*\r\n/="" PopupMenu_Buffer Test_MenuIndex!=0 IfTrue Set_Buffer=%MenuStr% MatchBuffer_/^\*/ IfFalse Hint_"checkout %MenuStr%" Git_"checkout %MenuStr%" EndIf EndIf Exit