Help us understand the problem. What is going on with this article?

TortoiseGit マニュアル

TortoiseGit マニュアル

TortoiseGit の英文を和訳しただけです。


入門

アイコンオーバーレイ

アイコンオーバーレイを表示するエクスプローラー

アイコンオーバーレイを表示するエクスプローラ

TortoiseGit の最も目に見える機能の1つは、作業ツリーのファイルに表示されるアイコンオーバーレイです。これらは、どのファイルが変更されたか一目でわかります。アイコンオーバーレイを参照して、さまざまなオーバーレイが何を表すかを確認してください。

コンテキストメニュー

バージョン管理下のディレクトリのコンテキストメニュー

バージョン管理下のディレクトリのコンテキストメニュー

すべての TortoiseGit コマンドは、Windows エクスプローラーのコンテキストメニューから呼び出されます。ファイルまたはフォルダを右クリックすると、ほとんどが直接表示されます。使用可能なコマンドは、ファイルまたはフォルダーまたはその親フォルダーがバージョン管理下にあるかどうかによって異なります。Explorer ファイルメニューの一部として TortoiseGit メニューを表示することもできます。

Tips

非常にまれにしか使用されないコマンドは、拡張コンテキストメニューでのみ使用できます。拡張コンテキストメニューを表示するには、[Shift] キーを押しながらを右クリックします

場合によっては、TortoiseGit のエントリがいくつか表示されることがあります。これはバグではありません!

バージョン管理されたフォルダー内のショートカットのエクスプローラーファイルメニュー

バージョン管理されたフォルダー内のショートカットのエクスプローラーファイルメニュー

この例は、バージョン管理されたフォルダー内のバージョン管理されていないショートカット用であり、エクスプローラーのファイルメニューには TortoiseGit の2つのエントリがあります。1つはショートカット自体用で、もう1つはショートカットが指しているオブジェクト用です。それらを区別しやすくするために、アイコンの右下隅にインジケータがあり、メニューエントリがファイル、フォルダ、ショートカット、または複数の選択された項目のいずれであるかを示します。

ドラッグアンドドロップ

バージョン管理下のディレクトリの右ドラッグメニュー

バージョン管理下のディレクトリの右ドラッグメニュー

他のコマンドは、ファイルまたはフォルダーを作業ツリー内の新しい場所に右ドラッグするか、バージョン管理されていないファイルまたはフォルダーをバージョン管理下のディレクトリに右ドラッグすると、ドラッグハンドラーとして使用できます。

一般的なショートカット

一般的な操作には、よく知られている Windows ショートカットがありますが、ボタンやメニューには表示されません。ビューの更新など、明らかなことを行う方法がわからない場合は、こちらをチェックしてください。

キー 説明
F1 もちろん助けてください。
F5 現在のビューを更新します。これはおそらく、最も便利な1つのワンキーコマンドです。たとえば... Explorerでは、作業ツリーのアイコンオーバーレイが更新されます。コミットダイアログでは、作業ツリーを再スキャンして、コミットする必要があるものを確認します。リビジョンログダイアログで、リポジトリに再度連絡して、最新の変更を確認します。
Ctrl+A すべて選択。エラーメッセージが表示され、コピーしてメールに貼り付ける場合に使用できます。Ctrl-Aを使用してエラーメッセージを選択し、...
Ctrl+C ...選択したテキストをコピーします。
Ctrl+F サーチ

認証

SSH (URLは git@example.com のようになります)

TortoiseGitPlink は、Windows との統合性が高いため、SSH クライアントとして推奨されます。デフォルトでは、TortoiseGitPlink はパスワードを保存しません。PuTTY 認証エージェントを使用してパスワードをキャッシュできます(PuTTY キーがリモート用に設定されている場合は自動的に行われます)。高度なヒントとコツについては、付録F「SSH / PuTTYのヒントとコツを参照してください。ただし、TortoiseGitPlink ~/.ssh/configはOpenSSH 固有のものを尊重しません(PuTTY のヒントとコツを参照するか、SSH クライアントとしてOpenSSH を構成します。次の段落を参照してください)。Git Bash で TortoiseGitPlink も使用する場合は、次の環境変数を作成しますGIT_SSH PuTTY plink.exe またはできれば TortoiseGitPLink.exe へのパスを使用します。これは、Git for WIndows インストーラーを再実行することで(使用する SSH クライアントを選択できます)、コマンドラインでset GIT_SSH=PATH_TO_PLINK.EXE"(C:\Program Files\TortoiseGit\bin\TortoiseGitPLink.exe デフォルトのインストール) 実行するか、環境変数を永続的に構成することで実行できます。

OpenSSH (Git for Windows、Cygwin、およびMsys2に付属)を使用することもできます。ただ、オープンTortoiseGitの設定とオープンネットワークのページを入ると、ssh.exeSSH クライアントとして、ネットワーク設定と[TortoiseGit アップグレード後、ホストが見つかりません(Stack Overflow)][])を参照。OpenSSH を使用する場合は、利用することもできます~/.ssh/config([TortoiseGit から保存された資格情報を削除する(Stack Overflow)][]参照)。

HTTP/HTTPS (URLは https:// または http:// で始まります)

デフォルトでは、Git は資格情報を保存/キャッシュしません。ただし、資格情報ヘルパーを構成することもできます(推奨、gitcredentials(7)も参照してください)、または%HOME%/ _netrcを手動で使用することができます。

資格情報ストアをセットアップし、保存されている資格情報をクリアする場合は、[TortoiseGit から保存された資格情報を削除する(Stack Overflow)][]を参照してください。

Windowsの最大化

TortoiseGit のダイアログの多くには表示する情報がたくさんありますが、画面いっぱいに最大化するのではなく、高さのみ、または幅のみを最大化すると便利です。便宜上、[最大化]ボタンにはこのためのショートカットがあります。中央のマウスボタンを使用して垂直方向に最大化し、右のマウスボタンを使用して水平方向に最大化します。


リポジトリを作成

このセクションでは、Git リポジトリの作成方法について説明します。空の Git リポジトリの作成は非常に簡単です。空のディレクトリで、エクスプローラーのコンテキストメニューを使用して、Git Create Repository here を選択します。

リポジトリ作成ダイアログ

リポジトリ作成ダイアログ

ここでは、裸の Git リポジトリと通常の Git リポジトリを選択できます。通常のリポジトリには、ファイルをチェックアウトおよびコミットできる作業ツリーがアタッチされていますが、ベアリポジトリはプッシュおよびプルのみが可能です。(裸ではない)リポジトリが作成された後、メッセージボックスが表示されます:

リポジトリ作成の成功メッセージ

リポジトリ作成の成功メッセージ

詳細については、git-init(1)を参照してください。


リポジトリのクローン

このセクションでは、既存のリポジトリから Git リポジトリを複製する方法について説明します。この操作は、リモートリポジトリの完全なコピーを取得するために使用されます。Git リポジトリのクローン作成は非常に簡単です。空のディレクトリで、エクスプローラーのコンテキストメニューを使用し、Git Clone ...を選択します。

クローンダイアログが表示されます。

複製ダイアログ

複製ダイアログ

[URL: ]

リポジトリの URL アドレスを入力します。これは、から複製さます。[参照]をクリックして、ディレクトリを参照できます。

[ディレクトリ:]

複製するローカルディレクトリを入力します。[参照]をクリックして、ディレクトリを参照できます。

[パテキーのロード]

チェックボックスをオンにすると、クローンはパテキーファイルを Pageant に自動的にロードします。...をクリックして、パテキーファイルを参照できます。

クローンは、現在の HEAD を自動的にチェックアウトして作業スペースにします。

Git クローンは、http、git、および ssh プロトコルをサポートします。ネットワーク設定 に、SSH クライアントの選択方法が示されています。OpenSSH、Plink、または TortoiseGitPlink。

詳細については、git-clone(1)をご覧ください。


作業ツリーのチェックアウト(コミットに切り替える)

[切替/チェックアウト] ダイアログを使用して、特定のバージョンを作業ツリーにチェックアウトできます(つまり、選択したバージョンの状態と一致するようにすべてのファイルが更新されます)。通常、特定のバージョンが現在の分岐として設定されている(ローカル)分岐によって表される(参照、分岐/タグ付けリポジトリとブランチ)。

Windows エクスプローラーで Git リポジトリディレクトリを選択します。右クリックしてコンテキストメニューをポップアップ表示し、TortoiseGitSwitch / Checkout ...コマンドを選択します。次のダイアログボックスが表示されます。

スイッチ/チェックアウトダイアログ

スイッチ/チェックアウトダイアログ

Create New Branch でブランチ名を入力すると、新しいブランチが作成されます。また、新しいブランチは現在のブランチ (HEAD)として設定されます。

[...]をクリックして、参照/ブランチ/ログを参照し、チェックアウトするブランチを選択できます。

[作業ツリーの変更を上書きする(強制)]チェックボックスをオンにすると、作業ツリー内のコミットされていない変更が選択したバージョンで上書きされます。

リモートブランチを選択すると、次のことが確認できトラックをリモートブランチを追跡するために。プッシュプル、または同期ダイアログを開くと、リモートブランチが自動的に事前選択されます。

詳細については、git-checkout(1)をご覧ください。

重要

Tag または Commit にチェックアウト/切り替えた場合、新しいブランチを作成する必要があります。それ以外の場合は、「ブランチなし」で作業します (HEAD 状態は切り離されます)。つまり、現在のブランチはありません。DETACHED HEAD を参照してください。これは、このバージョンでブランチを作成し、それに切り替えることで簡単に修正できます。

エクスポート

.gitたとえば、ソースの圧縮されたtarballを作成する場合など、これらのディレクトリなしでローカルコピーを作成する場合があります。Git ワーキングツリーのエクスポートを読んで、その方法を確認してください。


変更をリポジトリにコミットする

作業ツリーに加えた変更を保存することは、変更をコミットすることと呼ばれます。最初に TortoiseGit変更の確認を使用して、ローカルで変更されたファイルを確認できます。

コミットダイアログ

競合がない場合は、変更をコミットする準備ができています。コミットしたいファイルやフォルダーを選択し、TortoiseGitコミット...を選択します

コミットダイアログ

コミットダイアログ

コミットダイアログには、追加、削除、バージョン管理外のファイルを含む、変更されたすべてのファイルが表示されます。変更したファイルをコミットしたくない場合は、そのファイルのチェックを外してください。バージョン管理外のファイルを含める場合は、そのファイルをチェックしてコミットに追加します。

デフォルトのコミットダイアログは、選択されたパスとその子ディレクトリファイルをリストするだけです。プロジェクトのすべてのファイルを一覧表示する場合は、[プロジェクト全体]をクリックするだけです。

コミットダイアログの多くのバージョン管理されていないファイル

コミットダイアログにバージョン管理されていない(コンパイラ生成またはエディターバックアップなど)ファイルが多すぎると思われる場合、これを処理する方法がいくつかあります。あなたはできる:

  • TortoiseGit.gitignoreを使用してリストにファイルを追加 → リストを無視して追加

詳細については、ファイルとディレクトリを無視するを参照してください。

コミットダイアログで変更されたファイルをダブルクリックすると、外部差分ツールが起動して変更が表示されます。スクリーンショットに示すように、コンテキストメニューにはさらにオプションがあります。ここからファイルをテキストエディタや IDE などの別のアプリケーションにドラッグすることもできます。

アイテムの左側にあるチェックボックスをクリックして、アイテムを選択または選択解除できます。

下のペインに表示される列はカスタマイズ可能です。列ヘッダーを右クリックすると、表示される列を選択できるコンテキストメニューが表示されます。また、マウスを列の境界上に移動すると表示されるドラッグハンドルを使用して、列の幅を変更することもできます。これらのカスタマイズは保持されるため、次回は同じ見出しが表示されます。

さまざまなアイテムのカラーコードについては、ステータス

ドラッグアンドドロップ

作業ツリーがまったく同じである限り、ファイルを他の場所からコミットダイアログにドラッグできます。たとえば、階層の遠くのフォルダを見るためにいくつかのエクスプローラーウィンドウが開いている巨大な作業ツリーがあるとします。最上位のフォルダー(変更を確認するために長いフォルダークロールを使用)からのコミットを避けたい場合は、1つのフォルダーのコミットダイアログを開き、他のウィンドウからアイテムをドラッグして同じアトミックコミットに含めることができます。

作業ツリー内にあるバージョン管理されていないファイルをコミットダイアログにドラッグすると、Git が自動的に追加されます。

コミットは単なるローカルです

すべてのコミットはローカルであり、ローカルの作業ツリーにのみ影響することに注意してください。それらを他の人と共有するには、それらをリモートリポジトリにプッシュする必要があります。詳細については、プッシュおよび同期を参照してください。

変更リスト

コミットダイアログは、関連ファイルをグループ化するのに役立つチェンジリスト機能をサポートしています。この機能については、変更リストをご覧ください。

コミットリストからアイテムを除外する

頻繁に変更されるが、本当にコミットしたくないバージョン管理されたファイルがある場合があります。時々、これはビルドプロセスの欠陥を示しています-それらのファイルがバージョン管理されているのはなぜですか?テンプレートファイルを使用する必要がありますか?しかし、時にはそれは避けられません。古典的な理由は、ビルドするたびに IDE がプロジェクトファイルのタイムスタンプを変更することです。プロジェクトファイルにはすべてのビルド設定が含まれているため、バージョン管理する必要がありますが、タイムスタンプが変更されたからといってコミットする必要はありません。

このような厄介な場合に役立つように、呼び出されるファイルにはGitフラグがありますskip-worktree-ファイルは変更されていないものとして扱われ、Gitはマージ/プルでそれらのマージも拒否します(スキップワークツリービット参照)。このようなケースをタックする別の方法として、と呼ばれるチェンジリストを予約しましたignore-on-commit。このチェンジリストに追加されたファイルは、コミットダイアログで自動的にチェックが外されます。引き続き変更をコミットできますが、コをミットダイアログで手動で選択する必要があります。

ファイルの一部のみをコミットする

ファイルに加えた変更の一部のみをコミットしたい場合があります。このような状況は通常、何かに取り組んでいるが、緊急の修正をコミットする必要があり、その修正が作業中の同じファイルにある場合に発生します。

ファイルを右クリックし、コンテキストメニューコミット後に復元を使用します。これにより、ファイルのコピーがそのまま作成されます。次に、TortoiseGitMerge などでファイルを編集し、コミットしたくないすべての変更を元に戻します。これらの変更を保存したら、ファイルをコミットできます。

TortoiseGitMerge を使用する

TortoiseGitMerge を使用してファイルを編集する場合、慣れているとおりに変更を編集するか、含めるすべての変更にマークを付けることができます。変更されたブロックを右クリックして、コンテキストメニューこのブロックマークして、その変更を含めます。最後に右クリックしてコンテキストメニューを使用します → 現在のコミットで表示したくない変更(マークされていないブロック)を反転するマークされたブロック除いて、左のファイルを使用します

コミットが完了すると、ファイルのコピーが自動的に復元され、コミットされていないすべての変更を含むファイルが作成されます。

コミットログメッセージ

コミットする変更を説明するログメッセージを必ず入力してください。これは、後日プロジェクトログメッセージを参照するときに、何がいつ何が起こったかを確認するのに役立ちます。メッセージは好きなだけ長くても短くてもかまいません。多くのプロジェクトには、何を含めるべきか、使用する言語、そして場合によっては厳密な形式のガイドラインがあります。

電子メール内で使用されているのと同様の規則を使用して、ログメッセージに簡単なフォーマットを適用できます。にスタイリングを適用するtextには*text*、太字、_text_下線、および^text^斜体に使用します。

コミットダイアログスペルチェッカー

コミットダイアログスペルチェッカー

TortoiseGit には、ログメッセージを正しく表示するのに役立つスペルチェッカーが含まれています(スペルチェッカーを参照)。これにより、スペルミスのある単語が強調表示されます。コンテキストメニューを使用して、推奨される修正にアクセスします。もちろん、あなたがするすべての専門用語を知っいるわけではないので、正しいスペルの単語は時々エラーとして表示されます。しかし、心配しないでください。コンテキストメニューを使用して、個人辞書に追加するだけです。

ログメッセージウィンドウには、ファイル名と機能の自動補完機能も含まれています。これは、正規表現を使用して、コミットしている(テキスト)ファイルからクラス名と関数名、およびファイル名自体を抽出します。入力している単語がリスト内のいずれかに一致する場合(少なくとも3文字を入力するか、Ctrl + Spaceを押した後)、ドロップダウンが表示され、フルネームを選択できます。TortoiseGit で提供される正規表現は、TortoiseGit インストールbinフォルダーに保持されています。独自の正規表現を定義してに保存することもできます%APPDATA%\TortoiseGit\autolist.txt。もちろん、TortoiseGit のインストールを更新しても、プライベートオートリストは上書きされません。正規表現に慣れていない場合は、次の紹介をご覧ください。https://en.wikipedia.org/wiki/Regular_expression、およびhttp://www.regular-expressions.info/のオンラインドキュメントとチュートリアル。

正規表現を正しく取得するのは難しい場合があるので、適切な式を整理するために、式を入力してテストするためのファイル名を入力できるテストダイアログがあります。コマンドを使用して、コマンドプロンプトから起動しますTortoiseGitProc.exe /command:autotexttest

以前に入力したログメッセージを再利用できます。コンテキストメニュー → [最近のメッセージを貼り付け] コマンドを使用して、この作業ツリーに入力した最後のいくつかのメッセージのリストを表示します。保存されているメッセージの数は、TortoiseGit設定ダイアログでカスタマイズできます。

ログメッセージウィンドウには、コミットメッセージスニペット機能も含まれています。これらのスニペットは、スニペットショートカットを入力するとオートコンプリートドロップダウンに表示され、オートコンプリートドロップダウンでスニペットを選択すると、スニペットの全文が挿入されます。TortoiseGitで提供されるスニペットは、TortoiseGitインストールbinフォルダーに保持されています。独自のスニペットを定義してに保存することもできます%APPDATA%\TortoiseGit\snippet.txt#コメント文字です。エスケープシーケンスを使用して\t\r\n、と\\

[署名済みの追加] をクリックして、ログメッセージの末尾に名前とメールアドレスを追加できます。

TortoiseGit の設定の[保存されたデータ]ページから保存されているすべてのコミットメッセージを消去するか、[Delete] キーを使用して[最近のメッセージ]ダイアログ内から個々のメッセージを消去できます。

チェックしたパスをログメッセージに含める場合は、編集コントロールのコマンド コンテキストメニューファイル名リストの貼り付け を使用できます。

ログメッセージにパスを挿入するもう1つの方法は、ファイルリストから編集コントロールにファイルをドラッグするだけです。

キーボードを使用する

Ctrl+returnを押すと、キーボードからOKボタンにアクセスできます。

バグ追跡ツールとの統合

バグ追跡システムを有効にしている場合は、Bug-ID / Issue-Nr:テキストボックスに1つ以上の問題を設定できます。複数の問題はカンマで区切る必要があります。または、正規表現ベースのバグ追跡サポートを使用している場合は、ログメッセージの一部として問題参照を追加するだけです。詳細については、バグ追跡システム/問題追跡システムとの統合をご覧ください。

メッセージテキストボックスのサイズを調整する

「メッセージ」グループボックスと「変更」グループボックスの間のギャップにマウスを移動し、セパレータをドラッグします。

新しいブランチにコミットする

(現在のブランチに基づいて)新しいブランチにコミットする場合は、新しいブランチのチェックボックスをオンにして、表示されたテキストボックスにブランチ名を入力できます。

連続して複数回コミットし、変更を直接プッシュする

メインボタンの[コミット]には、ドロップダウンメニューがあります。オプション ReCommitCommit&push *があります。オプション *ReCommit は、変更をコミットし、Commitダイアログを開いたままにして、コミットを続行できるようにします。最後のオプション Commit&push は、変更をコミットし、すぐに変更をプッシュします。現在のアクティブなブランチに対してリモートトラッキングブランチが設定されていない場合、プッシュダイヤル(プッシュを参照)が開きます。

コミット進捗

コミットを押すと、コミットの進行状況を示すダイアログが表示されます。

進行中のコミットを示す進行ダイアログ

進行中のコミットを示す進行ダイアログ

左下には、ReCommit (コミットダイアログをリセットし、コミットを続行できるようにする)や、リモートリポジトリにコミットをプッシュするためのプッシュなど、追加のステップへのショートカットを提供するメニューボタンがあります。

詳細については、git-commit(1)を参照してください。


ステータス情報を取得する

作業ツリーで作業している間、多くの場合、どのファイルを変更/追加/削除または名前変更したか、またはどのファイルが他のユーザーによって変更およびコミットされたかを知る必要があります。

アイコンオーバーレイ

アイコンオーバーレイを表示するエクスプローラー

アイコンオーバーレイを表示するエクスプローラー

作業ツリーをチェックアウトしたので、アイコンが変更された Windows エクスプローラーでファイルを確認できます。これが TortoiseGit が非常に人気がある理由の1つです。TortoiseGit は、元のファイルアイコンと重なる、いわゆるオーバーレイアイコンを各ファイルアイコンに追加します。ファイルのGitステータスに応じて、オーバーレイアイコンは異なります。

icon 説明
img 新しくチェックアウトした作業ツリーには、オーバーレイとして緑色のチェックマークが付いています。つまり、Git ステータスは正常です。
img すぐにファイルの編集を始めるようにステータスの変更は、変更とオーバーレイアイコンは、赤いエクスクラメーションマークに変わります。これにより、作業ツリーを最後に更新してからコミットする必要があるため、どのファイルが変更されたかを簡単に確認できます。
img 更新中に競合が発生すると、アイコンが黄色の感嘆符に変わります。
img ステージング。「git update-index」を使用してgitにこのファイルをコミットするように指示すると、Git はそのファイルをステージングします。
img このアイコンは、現在のフォルダー内の一部のファイルまたはフォルダーがバージョン管理から削除されるようにスケジュールされているか、バージョン管理下のファイルがフォルダーにないことを示します。
img プラス記号は、ファイルまたはフォルダーがバージョン管理に追加されるようにスケジュールされていることを示します。
img バー記号は、バージョン管理の目的でファイルまたはフォルダーが無視されることを示します。このオーバーレイはオプションです。
img このアイコンは、バージョン管理下にないが無視されていないファイルとフォルダーを示します。このオーバーレイはオプションです。

実際、これらのアイコンのすべてがシステムで使用されているわけではない場合があります。これは、Windows で許可されるオーバーレイの数が非常に限られているためです。また、古いバージョンのTortoiseCVS または SkyDrive、DropBox、GoogleDrive などのオーバーレイハンドラーを備えたツールを使用している場合、十分なオーバーレイスロットが利用できないためです。TortoiseGit は「Good Citizen(TM)」になろうとし、オーバーレイの使用を制限して他のアプリにもチャンスを与えます。

オーバーレイに問題がある場合は、オンラインFAQをご覧ください。

アイコンオーバーレイがGitステータスと他の技術的詳細にどのように対応するかの説明については、アイコンオーバーレイをお読みください。

状態

変更を確認する

変更を確認する

変更したファイルや、他のユーザーが変更およびコミットしたファイルを知ることは非常に便利です。そこでTortoiseGit変更の確認...コマンドが役立ちます。このダイアログには、作業ツリーで何らかの方法で変更されたすべてのファイルと、バージョン管理外のファイルが表示されます。

ダイアログでは、色分けを使用してステータスを強調表示します。

ローカルで変更されたアイテム。

アイテムを追加しました。履歴とともに追加されたアイテムには+、[テキストステータス]列に記号があり、ツールチップにアイテムのコピー元が表示されます。

  • 暗赤色

削除されたアイテムまたは欠落しているアイテム。

ローカルおよびリポジトリ内で変更されたアイテム。変更は更新時にマージされます。これら、更新時に競合を引き起こす可能性があります。

  • 真っ赤

ローカルで変更されてリポジトリで削除されたアイテム、またはリポジトリで変更されてローカルで削除されたアイテム。これら、更新時に競合を引き起こします。

  • ブラック

変更されていないバージョン管理外のアイテム。

これはデフォルトの配色ですが、設定ダイアログを使用してこれらの色をカスタマイズできます。詳細については、TortoiseGit カラー設定をお読みください。

ダイアログのコンテキストメニューから、変更の差分を表示できます。コンテキストメニューベースと比較を使用し行ったローカルの変更確認しますコンテキストメニュー差分を統合差分として表示を使用して、他の人が行ったリポジトリの変更を確認します。

個々のファイルの変更を元に戻すこともできます。誤ってファイルを削除してしまった場合は、Missing と表示され、Revert を使用して回復できます。

バージョン管理されていないファイルは、コンテキストメニュー削除を使用して、ここからごみ箱に送信できます。(ごみ箱をバイパスして)ファイルを完全に削除する場合は、Shift キーを押しながら[削除]をクリックします。

ファイルを詳細に調べる場合は、ここからテキストエディタや IDE などの別のアプリケーションにドラッグできます。

列はカスタマイズ可能です。列ヘッダーを右クリックすると、表示される列を選択できるコンテキストメニューが表示されます。また、マウスを列の境界上に移動すると表示されるドラッグハンドルを使用して、列の幅を変更することもできます。これらのカスタマイズは保持されるため、次回は同じ見出しが表示されます。

一度に複数の無関係なタスクに取り組んでいる場合は、ファイルをチェンジリストにグループ化することもできます。詳細については、変更リストをお読みください。

ダイアログの下部には、表示するエントリを選択するためのいくつかのオプションがあります(無視されたファイル、追跡されていない/バージョン管理されていないファイルなど)。ここで「有効と想定」または「ワークツリーをスキップ」とマークされたすべてのファイルを表示することもできます(Showing ingore local changes flagged files を使用)。これらのフラグをリセットします(エクスプローラーの[Git]タブのファイルプロパティを使用してこのフラグを編集することもできます)。

統合 diff の保存:コミットされていない変更を含む統合パッチを生成し、構成された diff ビューアで開きます。変更を他の人に渡したい場合は、パッチとプルリクエストの作成と適用を検討してください。

Stash:Git stash にすばやくアクセスするためのドロップダウンメニューです(Stash Changesを参照)。この機能により、コミットされていない変更を脇に置いて、無関係な問題に取り組み、後で簡単に変更を取り戻すことができます。

コミット:現在のダイアログが開かれたフォルダー/ファイルとまったく同じフォルダーで、コミットダイアログを開きます(リポジトリへの変更のコミットを参照)。コミットダイアログにファイルのサブセットのみを事前入力する場合は、ファイルを選択し、コンテキストメニューで[コミット...] を選択します。

差分の表示

多くの場合、ファイルの内部を調べて、変更内容を確認します。これを行うには、変更されたファイルを選択し、TortoiseGit のコンテキストメニューから Diff を選択します。これにより、外部diff-viewerが起動し、現在のファイルとBASE、最後のチェックアウトまたは更新後に保存された元のコピー(リビジョン)が比較されます。

Tips

作業ツリー内にない場合や、複数のバージョンのファイルがある場合でも、差分を表示できます。

エクスプローラーで比較する2つのファイルを選択し(Ctrlキーとマウスを使用するなど)、TortoiseGit のコンテキストメニューから Diff を選択します。最後にクリックしたファイル(フォーカスのあるファイル、つまり点線の長方形)は、後のファイルと見なされます。


プルとフェッチの変更

このセクションでは、別のリポジトリから変更を取得またはプル(ダウンロード)する方法について説明します。プルとフェッチの違いは次のとおりです。

Fetchは、オブジェクトと参照をリモートリポジトリからダウンロードし、通常はリモートトラッキングブランチを更新します。プルは、しかし、変更をダウンロードするだけでなく、それらをマージします-それはフェッチとマージの組み合わせです(マージを参照)。設定されたリモート追跡ブランチが自動的に選択されます。

重要

マージするたびに、両方のブランチでファイルが変更され、その変更を自動的にマージできない可能性があります。これは「競合」と呼ばれ、手動で解決する必要があります。詳細については、競合の解決を参照してください。

プル/フェッチは、TortoiseGitPull ...またはTortoiseGitFetch ...を使用して開始できます。同期ダイアログ(同期を参照)を使用して変更をフェッチおよびプルすることもできますが、オプションはより少なくなりますが、同期ダイアログでは、プッシュや差分や変更を確認するなどの他の操作を開始できます。

フェッチとプルのダイアログが開きます。

プルダイアログ

プルダイアログ

取得ダイアログ

取得ダイアログ

リモート構成済みのリモートリポジトリを選択します(これらはリモートの管理ラベルを使用して変更できます)。設定されたリポジトリの代わりに、別のリポジトリの URL を任意の URL テキストボックスに入れることもできます。

現在のアクティブなブランチにリモート追跡ブランチセットがある場合、リモートブランチとリモートリポジトリが自動的に選択されます。リモート追跡ブランチは、参照ブラウザ(すべての参照を参照を参照)またはプッシュダイアログ(プッシュを参照)を使用して設定できます。

その他:他の URL またはローカルディレクトリを入力します。...をクリックして、ディレクトリを参照できます。

[パテキーの自動ロード]チェックボックスをオンにすると、構成済みのパテキーが Pageant を使用して自動的にロードされます。

タグには3つの状態があります(git 1.9以降)::Checkedすべてのタグとブランチがダウンロードされます(--tagsgitに渡されます)、: uncheckedタグがダウンロードされません(--no-tagsgitに渡されます)、および3番目の状態:デフォルトの動作を使用します(remote.<name>.tagopt設定に基づきます) )。タグには3つの状態(git 1.9より前)がありますChecked::すべてのタグのみがダウンロードされますが、ブランチはダウンロードされません(gitに渡されます--tags)、: uncheckedタグはダウンロードされません(--no-tagsgitに渡されます)、および3番目の状態:デフォルトの動作を使用します(ベース上のremote.<name>.tagopt設定)。

プルーンは:3つの状態がありTrue、もはや、リモートに存在しないリモート追跡の枝を削除するfalse:削除しないように、そして第3の状態:(に基づいて使用し、デフォルトの動作remote.<name>.pruneまたはfetch.prune上で設定することができますgitの設定リモートを)。

Tips

付録F「SSH / PuTTYのヒントとコツ」で、PuTTY および ssh-keys の使用に関する詳細情報を見つけることができます。また、リモートで複数のアカウントを同時に使用する方法についても説明します。

対立

主要なマージ作業は Git によってプル中に自動的に行われますが、チェリーピッキング中に競合が発生する場合があります(つまり、現在のブランチとプルしているブランチでファイルが変更されました)。競合の解決を参照してください競合を解決する方法について。

競合エディターの「REMOTE」/「theirs」は、プル/マージのために選択したブランチの変更と、作業ツリーのHEAD バージョンへの「LOCAL」/「mine」の変更を指すことに注意してください。

あなたはより多くの情報を見つけることができますgitのフェッチ(1)と、(1)gitのプル


プッシュ

このセクションでは、変更を別のリポジトリにプッシュ(送信)する方法について説明します。

プッシュを実行するには、TortoiseGitプッシュ...を使用してプッシュダイアログを開きます。同期ダイアログ(同期を参照)を使用して変更をプッシュすることもできますが、選択肢は少なくなりますが、同期ダイアログを使用すると、プルなどのその他の操作を開始したり、差分や変更を確認したりできます。

プッシュダイアログ

プッシュダイアログ

ブランチ

ローカル:他のリポジトリにプッシュされるソースブランチ。現在のブランチまたは選択したローカルブランチにリモート追跡ブランチセットがある場合、リモートブランチとリモートリポジトリが自動的に選択されます。リモート追跡ブランチは、参照ブラウザを使用して設定するか(すべての参照を参照を参照)、または Upstream/ track リモートブランチを設定を使用して設定できます。このダイアログでは、選択したリモートに常にプッシュ...オプションのいずれかを使用してオーバーライドできます。これにより、マージとプルに関して別のブランチをプッシュするための自動選択が自動的に選択されます。

リモート:他のリポジトリのリモートブランチ。

リモート:構成済みのリモートリポジトリを選択します。

任意のURL:リモートリポジトリのURL。

変更をベアリポジトリにプッシュする必要があります。作業ツリーのあるリポジトリに変更をプッシュすると、予期しない結果が生じる可能性があります。

オプション

Force (既知の変更を破棄する場合があります)これにより、リモートリポジトリがより安全な非早送りプッシュを受け入れることができます。これにより、リモートリポジトリのコミットが失われる可能性があります。注意して使用してください。これにより、リモート上の他の人からの不明な変更が失われるのを防ぐことができます。サーバーブランチがリモートトラッキングブランチと同じコミットを指しているかどうかを確認します(既知の変更)。はいの場合、強制プッシュが実行されます。それ以外の場合は拒否されます。Git にはリモートトラッキングタグがないため、このオプションを使用してタグを上書きすることはできません。これ--force-with-leasegit pushコマンドのオプションを渡します。

強制(不明な変更を破棄する場合があります)これにより、リモートリポジトリが安全でない非早送りプッシュを受け入れることができます。これにより、リモートリポジトリのコミットが失われる可能性があります。注意して使用してください。これはサーバーのコミットを確認しません。そのため、リモートで不明な変更が失われる可能性があります。タグを上書きするには、このオプションを[タグを含める]と共に使用します。これは、コマンドの従来の--forceオプションを渡しますgit push

タグを含めるまた、タグをリモートリポジトリにプッシュします。

パテキーの自動ロード

Tips

付録F「SSH / PuTTYのヒントとコツ」で、PuTTY および ssh-keys の使用に関する詳細情報を見つけることができます。また、リモートで複数のアカウントを同時に使用する方法についても説明します。

アップストリーム/トラックリモートブランチの設定:プッシュに成功すると、プッシュされたローカルブランチとそのリモートトラッキングブランチの間にトラッキング関係が設定されます。これにより、プル/プッシュおよびマージのためにリモートブランチが自動的に選択されます。

このローカルブランチの選択したリモートアーカイブに常にプッシュする

このローカルブランチの選択されたリモートブランチに常にプッシュする

再帰サブモジュール None:チェックなし。Check:すべてのサブモジュールの限定されたコミットがリモートリポジトリに存在するかどうかを確認します。サブモジュールのいずれかがプッシュされない場合、スーパープロジェクトのプッシュは失敗します。On-demand:すべてのサブモジュールの限定されたコミットがリモートリポジトリに存在するかどうかを確認します。サブモジュールがまだプッシュされていない場合、サブモジュールをプッシュしようとします。

詳細については、git-push(1)をご覧ください。


同期する

同期ダイアログは、1つのダイアログでリモートリポジトリに関連するすべての操作のインターフェイスを提供します。これは、プッシュを含み、パッチを送り、フェッチ、リモートアップデート、サブモジュールのアップデートを引く...しかし、同期ダイアログが参照されたい(に関するダイアログとして以下のオプションを提供し、引いて、変更を取得するおよびプッシュ)。

Sync ...を使用して同期ダイアログを開くことができます。

同期ダイアログが表示されます。

同期ダイアログ

同期ダイアログ

ブランチ

ローカルブランチ:他のリポジトリへ/からプッシュ/プルするソースブランチ。現在のブランチまたは選択したローカルブランチにリモート追跡ブランチセットがある場合、リモートブランチとリモートリポジトリが自動的に選択されます。リモート追跡ブランチは、参照ブラウザ(すべての参照を参照を参照)またはプッシュダイアログ(プッシュを参照)を使用して設定できます。

リモートブランチ:リモートリポジトリのリモートブランチ。

リモートURL:リモートリポジトリを選択するか、リモートリポジトリのURLを入力します。

管理新しいリモート名を追加します。

オプション

フォースフォース上書き既存のブランチ(変更を破棄してもよいです)

自動ロードパテキープッシュまたはプルオートロードパテキー

Tips

fetch、pull、fetch、stash 変更、またはサブモジュールの更新/同期を選択しながら Shift キーを押すと、個別のダイアログボックスを開いて、特定の操作のパラメーターをさらに制御できます。


デーモン

リモートGit リポジトリにプッシュせずに、ローカルリポジトリを他の人とすばやく共有したい場合があります。そのとき、TortoiseGitDaemon ...を使用する必要があります。

実行中のデーモンダイアログ

実行中のデーモンダイアログ

このコマンドは、ポート 9418(git:// hostname /) で Git プロトコルを提供する Git Daemon を実行します。

注意

選択したリポジトリは、さらに認証することなく読み取り/書き込みアクセス用にエクスポートされます。

重要

ホストはローカルネットワーク内でのみアクセス可能であり、ファイアウォールの調整が必要になる場合があります。

詳細については、git-daemon(1)を参照してください。


すべての参照を参照

このセクションでは、すべてのref(タグ、ブランチ、リモートブランチ、スタッシュなど)を表示および操作できるリファレンスブラウザについて説明します。TortoiseGit参照の参照...を使用して開くことができます。

参照ダイアログの参照ダイアログ

参照ダイアログの参照ダイアログ

左側のパネルには、タグ、ヘッド(ローカルブランチ)などの参照「タイプ」がツリーで表示されます。

右側のパネルには、最新のコミット、説明、および(ローカルブランチの場合)リモートトラッキングブランチを含む、選択したタイプのすべてのrefが表示されます(ネストしたrefを使用して無効にしない場合は再帰的に)。

上部には、右側のパネルに表示されている参照をフィルタリングするために使用できる編集バーがあります。検索構文は、[ログ]ダイアログで使用できる構文に似ています(ログメッセージのフィルタリングを参照)。

両方のパネルには、refの削除/名前変更、リモートトラックブランチの設定(ローカルブランチの場合)、リモートのタグの削除(リモートが選択されている場合の左側のパネル)などの追加オプションを提供する強力なコンテキストメニューがあります。正確に2つのrefが選択されている場合、それらを比較するか、両方のブランチにあるすべてのコミットのログを開く(branch1 ... branch2のログを表示)か、2つのブランチのいずれか1つ(branch1..branch2のログを表示する)が可能です。

リモートタグを削除するには、左側のリモートのコンテキストメニューを使用して、[リモートタグの削除...]を選択します。その後、次のダイアログが表示されます。そこで、複数のリモートタグを一度に削除できます。

リモートタグの削除ダイアログ

リモートタグの削除ダイアログ


サブモジュール

外部リポジトリを作業ツリー/ Git リポジトリに埋め込む場合、これはサブモジュールと呼ばれます。TortoiseGitSubmodules Addオプションを使用して、外部リポジトリをソースツリーの専用サブディレクトリに埋め込むことができます。このオプションを選択すると、ダイアログがポップアップします:

サブモジュールの追加ダイアログ

サブモジュールの追加ダイアログ

ここで、ディレクトリPathに埋め込むリポジトリの場所/ URLを入力できます。パスは、アクティブなソースツリー内の相対パスとして入力できますが、絶対パス(アクティブなソースツリーを指す)にすることもできます。フォルダは空または存在しない必要があります。リポジトリのHEADを統合したくない場合は、別のブランチを入力できます。OKを押すと、入力したリポジトリが複製され、現在のソースツリーに統合されます。

作業ツリーにサブモジュールが含まれている場合、2つの新しいコンテキストメニューエントリが利用できます。

サブモジュールのコンテキストメニューエントリ

サブモジュールのコンテキストメニューエントリ

サブモジュールの更新:

サブモジュールの更新ダイアログ

サブモジュールの更新ダイアログ

サブモジュールを初期化するか、登録されたサブモジュールを更新します。つまり、欠落しているサブモジュールのクローンを作成し、含まれるリポジトリのインデックスで指定されたコミットをチェックアウトします。

サブモジュールの同期:サブモジュールのリモート URL 構成設定をで指定された値に同期し.gitmodulesます。これは、サブモジュールURLがアップストリームで変更され、それに応じてローカルリポジトリを更新する必要がある場合に便利です。

また、作業ツリーはサブモジュール、含まれている場合は、「A作業ツリー(コミットするようにスイッチを)チェックアウトおよびリセットのサブモジュールを更新するためのボタンが含まれていました:

進行中のサブモジュールを更新するためのボタン

進行中のサブモジュールを更新するためのボタン

詳細については、git-submodule(1)をご覧ください。


変更リスト

理想的な世界では、一度に1つの作業のみを行い、作業ツリーには論理的な変更のセットが1つだけ含まれます。さて、現実に戻りましょう。多くの場合、一度に複数の無関係なタスクを処理する必要があり、コミットダイアログを見ると、すべての変更が一緒に混在しています。チェンジ機能を使用するグループは、それが簡単にあなたが何をしているかを確認するために行う、ファイルを一緒に役立ちます。もちろん、これは変更が重複しない場合にのみ機能します。2つの異なるタスクが同じファイルに影響する場合、変更を分離する方法はありません。

Tips

Gitにはstashing(Stash Changes)と呼ばれる同様の機能があります。

一般に、Gitコミットは単なるローカルであるため、新しいブランチを作成することを検討する必要があります。皆さんのリポジトリではなく、自分のリポジトリをいじるだけです。

チェンジリストはいくつかの場所で見ることができますが、最も重要なものはコミットダイアログと変更の確認ダイアログです。いくつかの機能と多くのファイルを操作した後、変更の確認ダイアログから始めましょう。最初にダイアログを開くと、変更されたすべてのファイルが一緒にリストされます。物事を整理し、機能に応じてそれらのファイルをグループ化するとします。

1つ以上のファイルを選択し、コンテキストメニューチェンジリストに移動を使用して、チェンジリストにアイテムを追加します。最初はチェンジリストはありませんので、これを初めて行う場合は新しいチェンジリストを作成します。使用目的を説明する名前を付け、[OK]をクリックします。ダイアログが変更され、アイテムのグループが表示されます。

チェンジリストを含むコミットダイアログ

チェンジリストを含むコミットダイアログ

コミットダイアログでは、チェンジリストでグループ化された同じファイルを見ることができます。グループ化をすぐに視覚的に示すだけでなく、グループの見出しを使用して、コミットするファイルを選択することもできます。

グループヘッダーをクリックしてすべてのエントリを選択し、選択したエントリのいずれかをチェックしてすべてをチェックします。

TortoiseGit は、使用のために1つのチェンジリスト名を予約していますignore-on-commit。これは、ローカルに変更があっても、ほとんどコミットしたくないバージョン管理されたファイルをマークするために使用されます。この機能については、コミットリストから項目を除外するで説明しています。

チェンジリストに属するファイルをコミットすると、通常、チェンジリストのメンバーシップは不要になると予想されます。そのため、デフォルトでは、コミット時にファイルはチェンジリストから自動的に削除されます。

Tips

チェンジリストは、純粋にローカルの TortoiseGit クライアント機能です。チェンジリストの作成と削除は、リポジトリにも他の誰かの作業コピーにも影響しません。ファイルを整理するのに便利な方法です。


ログダイアログ

変更およびコミットするたびに、その変更のログメッセージを提供する必要があります。そうすれば、後でどのような変更を加えたのか、またその理由を知ることができ、開発プロセスの詳細なログを取得できます。

ログダイアログは、これらのすべてのログメッセージを取得して表示します。表示は3つのペインに分かれています。

  • 上部のペインには、ファイル/フォルダーへの変更がコミットされたリビジョンのリストが表示されます。この要約には、日付、時刻、改訂をコミットした人、およびログメッセージの開始が含まれます。

太字で示されている行は HEAD コミットを示し、「Working tree changes」というエントリは、作業ツリーの現在の(コミットされていない)状態を表す仮想エントリです。

  • 中央のペインには、選択したリビジョンの完全なログメッセージが表示されます。

  • 下のペインには、選択したリビジョンの一部として変更されたすべてのファイルとフォルダーのリストが表示されます。

しかし、それはそれ以上のことをします-それはあなたがプロジェクト履歴に関するさらに多くの情報を得るために使用できるコンテキストメニューコマンドを提供します。

リビジョンログダイアログの呼び出し

改訂ログダイアログ

改訂ログダイアログ

[ログ]ダイアログを表示できる場所はいくつかあります。

  • TortoiseGitログを表示...を使用して、エクスプローラーのコンテキストメニューから。
  • コミットを選択できるさまざまなTortoiseGitダイアログから(多くの場合...ボタンを使用)。
  • コンテキストメニューを使用してコミットエントリまたはファイルが表示されるさまざまなTortoiseGitダイアログから。

改訂ログアクション

上部ペインには、そのリビジョンで行われたことを要約するアイコンを含むアクション列があります。4つの異なるアイコンがあり、それぞれ独自の列に表示されます。

icon 説明
img リビジョンがファイルまたはディレクトリを変更した場合、変更されたアイコンが最初の列に表示されます。
img リビジョンがファイルまたはディレクトリを追加した場合、追加されたアイコンが2列目に表示されます。
img リビジョンがファイルまたはディレクトリを削除した場合、削除されたアイコンが3番目の列に表示されます。
img リビジョンがファイルを置き換えた(名前を変更した)場合、置き換えられたアイコンが4列目に表示されます。

追加情報を取得する

コンテキストメニューのあるリビジョンログダイアログの上部ペイン

コンテキストメニューのあるリビジョンログダイアログの上部ペイン

[ログ]ダイアログの上部ペインには、より多くの情報にアクセスできるコンテキストメニューがあります。Shiftキーを押して、いくつかのオプションを含む拡張メニューを表示できます。

  • 作業ツリーと比較する

選択したリビジョンを作業ツリーと比較します。デフォルトの Diff-Tool は TortoiseGit で提供されるTortoiseGitMerge です。ログダイアログがフォルダ用である場合、変更されたファイルのリストが表示され、各ファイルに加えられた変更を個別に確認できます。

  • 統一された差分として変更を表示

選択したリビジョンで行われた変更を Unified-Diff ファイル(GNUパッチ形式)として表示します。これは、数行のコンテキストの違いのみを示しています。視覚的なファイル比較よりも読みにくいですが、すべてのファイルの変更をコンパクトな形式でまとめて表示します。

  • 前のリビジョンと比較

選択したリビジョンを前のリビジョンと比較します。これは、作業ツリーと比較するのと同じように機能します。フォルダの場合、このオプションは最初に変更されたファイルのダイアログを表示し、比較するファイルを選択できます。

  • リポジトリを閲覧する

リポジトリブラウザーを開いて、選択したリビジョンでのリポジトリ内の選択したファイルまたはフォルダーを調べます(リポジトリブラウザーを参照)。

  • これにリセット(現在のブランチ)

HEADを選択したコミットにリセットします(リセットを参照)。

  • リビジョンへの切り替え/チェックアウト

作業ツリーを選択したリビジョンに更新します。作業ツリーに過去の時間を反映させたい場合、またはリポジトリへのさらなるコミットがあり、作業ツリーを一度に1ステップずつ更新したい場合に役立ちます。

  • リビジョンからブランチを作成

選択したリビジョンに基づいてブランチを作成します(ブランチ/タグ付けを参照)。

  • リビジョンからタグを作成

選択したリビジョンにタグを作成します(分岐/タグ付けを参照)。

  • これにリベース(現在のブランチ)

選択したコミットの上に現在のブランチをリベースします(リベースを参照)。

  • このバージョンをエクスポート...

選択したリビジョンを zip などのアーカイブファイルにエクスポートします。これにより、リビジョンを確認するダイアログが表示され、エクスポートの場所を選択します(Git 作業ツリーのエクスポートを参照)。

  • このコミットによる変更を元に戻す

選択したリビジョンで行われた変更を元に戻します。すべての変更は作業ツリーに統合されます。すぐにコミットするか、後で編集してコミットするかを選択できます。元に戻した変更を破棄するには、ハードリセットを実行します。

  • メモを編集する

選択したコミットのメモを編集します。

  • Cherry このコミットを選択

チェリーは、HEAD の上でこのコミットを選択します(チェリーピッキングを参照)。

  • 二等分開始

二等分を開始します。バグを導入した変更をバイナリ検索で見つけます(Bisectを参照)。

  • パッチのフォーマット...

このコミットからパッチを作成します。

  • SHA-1 をクリップボードにコピーします

選択したリビジョンのコミットハッシュをクリップボードにコピーします。

  • クリップボードにコピー

選択したリビジョンのログの詳細をクリップボードにコピーします。これにより、リビジョン番号、作成者、日付、ログメッセージ、および各リビジョンの変更されたアイテムのリストがコピーされます。

  • ログメッセージをクリップボードにコピー

選択したリビジョンのログメッセージをクリップボードにコピーします。

  • ログメッセージを検索...

###### [ログメッセージの検索]ダイアログ[ログメッセージの検索]ダイアログ

入力したテキストのログメッセージを検索します。これにより、入力したログメッセージと、Git が作成したアクションの概要(下のペインに表示)も検索されます。検索では大文字と小文字は区別されません。先端これにより、ref(タグとブランチ)を簡単に検索できます。参照または[検索]をクリックしながら Shift キーを押すと、選択せずにコミットに移動できます。

  • このコミットが存在するブランチを表示します

選択コミットが属するブランチを表示します。ローカルブランチとリモートブランチの両方が表示されます。

選択した2つのリビジョンのトップペインコンテキストメニュー

選択した2つのリビジョンのトップペインコンテキストメニュー

(通常の Ctrl -modifier を使用して)一度に2つのリビジョンを選択すると、コンテキストメニューが変わり、オプションが少なくなります。

  • リビジョンを比較する

視覚的な差異ツールを使用して、選択した2つのリビジョンを比較します。デフォルトの Diff-Tool はTortoiseGit で提供される TortoiseGitMerge です。

  • 差分を統合差分として表示する

選択した2つのリビジョン間の違いを Unified-Diff ファイルとして表示します。これは、ファイルとフォルダーに対して機能します。

  • これらのコミットによる変更を元に戻す

選択したリビジョンで行われた変更を元に戻します。すべての変更は作業ツリーに統合されます。すぐにコミットするか、後で編集してコミットするかを選択できます。元に戻した変更を破棄するには、ハードリセットを実行します。

  • 1つのコミットに結合する

連続コミットを1つのコミットに結合します。

  • 選択したコミットのチェリーピック

チェリーピックは、現在の HEAD の上にコミットを選択しました(チェリーピッキングを参照)。

  • パッチのフォーマット...

選択した2つのコミット間にパッチを作成します。

  • SHA-1 をクリップボードにコピーします

CRLF で区切られた、選択したリビジョンのコミットハッシュをクリップボードにコピーします。

  • クリップボードにコピー

上記のように、ログメッセージをクリップボードにコピーします。

  • ログメッセージをクリップボードにコピーする

選択したリビジョンのログメッセージをクリップボードにコピーします。これにより、各リビジョンのログメッセージがコピーされます。これにより、リリースノートの準備が容易になります。

  • ログメッセージを検索...

上記のようにログメッセージを検索します。

2つ以上のリビジョンを選択する場合(通常のCtrlまたはShift修飾子を使用)、選択コミットを1つのコミットに結合できます。そして、チェリーは現在のブランチへのこれらのコミットを選びます。

コンテキストメニューのある[ログ]ダイアログの下部ペイン

コンテキストメニューのある[ログ]ダイアログの下部ペイン

[ログ]ダイアログの下部ペインには、次のことができるコンテキストメニューもあります。

  • ベースと比較

選択したファイルをベースバージョンと比較します。

  • 統合された差分として表示

統一された差分形式でファイルの変更を表示します。このコンテキストメニューは、変更済みとして表示されるファイルでのみ使用できます。

  • 作業ツリーと比較する

選択したファイルを作業ツリーと比較します。

  • このリビジョンへの変更を元に戻す

選択したファイルをこのリビジョンの状態に戻します。

  • 親リビジョンへの変更を元に戻す

選択したファイルをこのリビジョンの前の状態に戻します。

  • ログを表示

選択した単一ファイルの改訂ログを表示します。

  • 非難...

[非難]ダイアログを開き、選択したリビジョンを非難できます(誰がどの行を変更しましたか?を参照)。

  • リビジョンを保存...

選択したリビジョンをファイルに保存して、そのファイルの古いバージョンを取得します。

  • 選択をエクスポート...

選択したファイルをターゲットディレクトリに保存します。「リビジョンを保存...」と比較すると、ディレクトリ構造が保持されます。

  • 代替エディターでリビジョンを表示

選択したコミットを使用して、notepad2 などの代替エディターで選択したファイルを表示します。

  • 開く/開く...

選択したファイルを、そのファイルタイプのデフォルトビューアーまたは選択したプログラムで開きます。

  • 探索する

エクスプローラーでファイルのディレクトリを開きます。

  • パスをクリップボードにコピー

パスをクリップボードにコピー

  • すべての情報をクリップボードにコピーします

すべての情報をクリップボードにコピーし、バージョン情報を含めます。

Tips

あなたは時々私たちが変化を参照し、他の時間は違いを参照することに気づくかもしれません。違いは何ですか?

ログメッセージのフィルタリング

数百のリストをスクロールするのではなく、関心のあるものだけを表示するようにログメッセージを制限する場合は、ログダイアログの上部にあるフィルターコントロールを使用できます。

最初の要素はブランチ/リビジョンフィルターです。をクリックすると、参照ブラウザが開きます(参照をすべて参照を参照)。そこで、単一または複数の参照を選択できます。正確に2つの参照を選択する場合、それらの結合方法を選択できます(特にAとBの両方を表示 "A B";違いの表示 "A ... B"またはAとB間のすべてのコミット "A..B")。このフィルター要素には、特別なコンテキストメニューも含まれています。ここでは、「HEAD」、「FETCH_HEAD」、「すべて」、「すべてのローカルブランチ」のショートカットを使用できます。また、最後に手動で選択したフィルターがそこに含まれています。

開始日と終了日のコントロールを使用すると、出力を既知の日付範囲に制限できます。検索ボックスでは、特定のフレーズを含むメッセージのみを表示できます。From のデフォルトの制限は、Dialogs 1 ページの設定ダイアログで構成できます(TortoiseGitダイアログの設定を参照)。

検索アイコンをクリックして、検索する情報を選択し、正規表現モードを選択します。通常、単純な部分文字列検索のみが必要ですが、より柔軟な検索語が必要な場合は、正規表現を使用できます。マウスをボックスの上に置くと、ツールチップに正規表現関数の使用方法に関するヒントが表示されます。検索式全体の結果を反転するには、感嘆符( '!')で文字列を開始します。また、http://www.regular-expressions.info/でオンラインドキュメントとチュートリアルを見つけることもできます。フィルタは、あなたのフィルタ文字列は、ログエントリに一致するかどうかをチェックして、エントリのみで動作します一致するフィルタ文字列が表示されます。

単純な部分文字列検索は、検索エンジンと同様の方法で機能します。検索する文字列はスペースで区切られ、すべての文字列が一致する必要があります。先頭-を使用して、特定の部分文字列が見つからないことを指定し(その用語の一致を反転)、!式の先頭で使用して、式全体の一致を反転できます。先行+文字列を使用して、以前にで除外されていた場合でも、部分文字列を含めるように指定できます-。ここでは、包含/除外の順序が重要であることに注意してください。スペースを含む必要がある文字列を囲むために引用符を使用できます。リテラル引用符を検索する場合は、2つの引用符を一緒に自己エスケープシーケンスとして使用できます。バックスラッシュ文字があることに注意してくださいませんエスケープ文字として使用され、単純な部分文字列検索では特別な意味はありません。例はこれを簡単にします:

アリスボブ-イブ

AliceとBobの両方を含むがEveは含まない文字列を検索します

アリス-ボブ+イブ

ボブではなくアリスの両方を含む文字列、またはイブを含む文字列を検索します。

-ケース+ SpecialCase

Caseを含まないが、SpecialCaseを含む文字列を含む文字列を検索します。

アリス・ボブ

アリスとボブの両方を含まない文字列を検索します

!-アリス-ボブ

ド・モーガンの定理を覚えていますか?NOT(NOT Alice AND NOT Bob)は(Alice OR Bob)になります。

「アリスとボブ」

リテラル表現「Alice and Bob」を検索します

「」

テキスト内の任意の場所で二重引用符を検索します

「アリスはボブに「こんにちは」と言います」

「アリスはボブに「こんにちは」と言う」というリテラル表現を検索します。

[表示] → [無関係な変更されたパスを非表示]を使用して、下部ペインでパス名をフィルタリングすることもできます。フォルダーのログを取得する場合、そのフォルダー内またはその下のすべてを意味します。ファイルについては、その1つのファイルだけを意味します。無関係なパスをグレーアウトする場合は、[表示] → [無関係な変更されたパスをグレー表示]を選択します。

左下には、[すべてのブランチ]および[プロジェクト全体を表示]チェックボックスがあります。これらを使用して、ブランチの応答をオーバーライドします。ファイル/フォルダーフィルターとリポジトリ全体のログを表示します。これらの設定は、単一のファイルでログダイアログを開始した場合でも、リポジトリに対して記憶されることに注意してください。

[プロジェクト全体を表示]をクリックして、プロジェクト履歴全体を表示できます。ディレクトリやファイルを選択する必要はありません。

ビュー + ラベルタグ ビュー + ラベルローカルブランチは 見る + ラベルリモートブランチあなたはロググラフに一部の参照型を示す無効にすることができます。

表示Gravatar 特定のリポジトリのGravatarを有効/無効にすることができます。

Walk BehaviorFirst Parent は、最初の親コミットをフォローアップします。これは、全体の履歴を理解するのに役立ちます。

歩行動作 → マージなしすべてのマージポイントをスキップします。

ウォーク動作名前の変更に従うこれは、名前の変更を追跡する単一のファイルでのみ使用できます。それ以外の場合、ログリストは、現在のファイル名が導入したコミットで停止します。

Walk BehaviorCompressed Graph ロググラフは、マージポイント、参照付きコミット、およびその他のコミットを含むように単純化されています。

ウォーク動作ラベル付きコミットのみを表示ロググラフは、参照のみのコミットを含むように簡略化されています。

ナビゲーション

右上のドロップダウンコントロールを使用してナビゲーションタイプ(作成者の電子メール、親1、選択履歴など)を選択し、および下の緑色のボタンを使用して、現在選択されているナビゲーションタイプに一致するコミットをナビゲートできます1。

緑色の「上」ボタンと「下」ボタンの代わりに、ALT + UP および ALT + DOWN ホットキーも使用できます。

ナビゲーションタイプ「選択履歴」に関して、TortoiseGitは選択したコミットの履歴を記憶するため、過去に選択したコミットを簡単にナビゲートできます。ALT + LEFTALT + RIGHTBrowse Back、およびBrowse Forwardを押してナビゲートすることもできます。マウスの戻るボタンと進むボタンも使用できます。

Shift も押すと、最後のコミットを選択せずに選択履歴をナビゲートできます(つまり、スクロールして強調表示するだけです)。これにより、コミットをナビゲートしてから、本当に選択したいコミットを選択できます(たとえば、現在選択されているコミットと以前に選択したコミットを比較できます)。

特定のハッシュを使用してコミットにジャンプする場合は、Ctrl + V または Shift + Insert を押して(検索ボックス以外のログダイアログ要素に)クリップボードからハッシュを貼り付けます。有効なコミットハッシュの形式の場合、ログダイアログはそれにジャンプしようとします。

統計情報

統計情報

[統計]ボタンをクリックすると、[ログ]ダイアログに表示されるリビジョンに関する興味深い情報を示すボックスが表示されます。これは、何人の著者が働いているか、彼らが行ったコミットの数、週ごとの進捗などを示しています。これで、誰が一生懸命働いていて、誰が怠けているかが一目でわかります;-)

統計ページ

このページには、考えられるすべての数値、特に対象となるリビジョンの期間と数、および最小/最大/平均値が表示されます。

著者ページによるコミット

著者別のヒストグラム

著者別のヒストグラム

このグラフは、単純なヒストグラム、積み上げヒストグラム、または円グラフとしてプロジェクトでアクティブになっている作成者を示します。

作者によるコミット円グラフ

作者によるコミット円グラフ

少数の主要な著者と多数のマイナーな寄稿者がいる場合、小さなセグメントの数によってグラフが読みにくくなる可能性があります。下部のスライダーを使用すると、しきい値を設定して(コミットの合計に対する割合として)、そのしきい値を下回ると、アクティビティが[その他]カテゴリにグループ化されます。

日付別コミットページ

日付別コミットグラフ

日付別コミットグラフ

このページでは、コミットと作成者の数の観点からプロジェクトアクティビティをグラフィカルに表示します。これにより、プロジェクトがいつ作業され、いつ誰が作業していたかがわかります。

複数の著者がいる場合、グラフ上に多くの線が表示されます。:ここで利用可能な2つのビューがあり、通常、それぞれの作者の活動がベースラインと比較しており、積み重ねられた各作者の活動が下に線に対してですが、。後者のオプションは、交差する線を回避します。これにより、グラフは読みやすくなりますが、1人の著者の出力が見にくくなります。

デフォルトでは、分析では大文字と小文字が区別されるため、ユーザーPeterEganPeteRegan異なる作成者として扱われます。しかし、多くの場合、ユーザー名は大文字と小文字は区別されません、時には矛盾入力されているので、あなたがしたいことDavidMorgandavidmorgan同じ人として扱われるように。作成者の大文字と小文字を区別しないチェックボックスを使用して、この処理方法を制御します。

統計ダイアログは、.mailmap ファイルも尊重します(MAPPING AUTHORSを参照)。

統計は、「ログ」ダイアログと同じ期間をカバーすることに注意してください。それが1つのリビジョンのみを表示している場合、統計はあまりわかりません。

ビューを更新する

リポジトリで新しいログメッセージを再度確認する場合は、F5 を使用して単純にビューを更新できます。


改訂グラフ

改訂グラフ

改訂グラフ

ブランチやタグがそのポイントからどこで取得されたかを知る必要がある場合があります。この種の情報を表示する理想的な方法は、グラフまたはツリー構造としてです。TortoiseGitリビジョングラフを使用する必要があるときです...

このコマンドは、改訂履歴を分析し、タグ、ブランチ、およびその他の参照のポイントを示す直接グラフを作成しようとします。

重要

グラフを生成するには、TortoiseGit はすべてのログメッセージをリポジトリルートから取得する必要があります。参照ポイントがあるコミットを表示するだけです。

リビジョングラフノード

各リビジョングラフノードは、表示しているツリーで何かが変更されたリポジトリ内のリビジョンを表します。異なるタイプのノードは、TortoiseGit設定を使用して設定できる色で区別できます

グラフには、アイテムがタグ、ブランチ、またはその他の参照によって参照されたポイントのみが表示されることに注意してください。プロジェクトのすべてのリビジョンを表示すると、重要な場合に非常に大きなグラフが生成されます。

グラフを使用する

大きなグラフを簡単にナビゲートするには、概要ウィンドウを使用します。これにより、グラフ全体が小さなウィンドウに表示され、現在表示されている部分が強調表示されます。強調表示された領域をドラッグして、表示されている領域を変更できます。

マウスがリビジョンボックスの上にあるときはいつでも、リビジョン日付、作成者、コメントがヒントボックスに表示されます。

あなたは二つのリビジョン(使用を選択した場合はCtrl - 左クリックを)、あなたはこれらのリビジョン間の差分を表示するには、コンテキストメニューを使用することができます。ブランチ作成ポイントのように差分を表示することもできますが、通常は、ブランチエンドポイント、つまりHEADリビジョンで差分を表示する必要があります。

違いを Unified-Diff ファイルとして表示できます。このファイルには、最小限のコンテキストですべての違いが1つのファイルに表示されます。コンテキストメニューリビジョンの比較を選択すると、変更されたファイルのリストが表示されます。ファイル名をダブルクリックして、ファイルの両方のリビジョンを取得し、視覚的な差分ツールを使用して比較します。

リビジョンを右クリックすると、コンテキストメニューログの表示を使用して履歴を表示できます。

ビューを更新する

サーバーで新しい情報を再度確認する場合は、F5を使用してビューを更新するだけです。


参照ログ

参照ログ(reflog)は、参照の履歴を表示します(つまり、過去に参照したコミットの参照先が表示されます)。TortoiseGitRefLogを使用して開くことができますが、デフォルトでは拡張コンテキストメニューにあるため、Shiftキーを押しながらエクスプローラーでフォルダーを右クリックする必要があります。

RefLogダイアログ

RefLogダイアログ

RefLogは、削除されたコミットまたはHEAD位置を復元するために使用できます(たとえば、しばらく前にHEADであったブランチを削除した場合)。

詳細については、git-reflog(1)を参照してください。


リポジトリブラウザ

時には、作業ツリー(例:裸のリポジトリ)を持たずに、リポジトリのすべてのコンテンツ/ファイルを表示する必要がある場合や、リビジョンに切り替えずにリビジョンのすべてのファイルを表示したい場合があります。それがリポジトリブラウザの目的です。TortoiseGitRepo-browser を使用して、またはコミットのコンテキストメニューを使用してログダイアログ(ログダイアログを参照)から開くことができます。

リポジトリブラウザ

リポジトリブラウザ

リポジトリブラウザは、Windows エクスプローラーに非常によく似ていますが、コンピュータ上のファイルではなく、特定のリビジョンのリポジトリのコンテンツが表示される点が異なります。左側のペインにはディレクトリツリーが表示され、右側のペインには選択したディレクトリの内容が表示されます。リポジトリブラウザウィンドウの上部に、リポジトリ内のパスと参照するリビジョンが表示されます。

Windows エクスプローラーと同様に、並べ替え順序を設定する場合は、右ペインの列見出しをクリックできます。また、エクスプローラーと同様に、両方のペインでコンテキストメニューを使用できます。

古いバージョンのファイルを取得するには、ファイルをクリックして[リビジョンを保存]を選択しますが、1つ以上のファイルをWindows エクスプローラーウィンドウにドラッグすることもできます。

ファイルのコンテキストメニューを使用すると、次のことができます。

  • 選択したファイルを、そのファイルタイプのデフォルトビューアーまたは選択したプログラムで開きます。
  • そのファイルのリビジョンログを表示して、その履歴を確認できるようにします。
  • 選択したリビジョンのファイルを作業ツリーの同じファイルと比較します。
  • ファイルを非難し、誰がどの行をいつ変更したかを確認します。
  • ファイルのバージョン管理外のコピーをハードドライブに保存するか、作業コピーでこのファイルを元に戻します(つまり、ファイルを作業ツリーの古いパスに保存します)。
  • アドレスバーに表示されているフルパスのファイル名をクリップボードにコピーします。

フォルダのコンテキストメニューでは、次のことができます。

  • そのフォルダーの改訂ログを表示します。
  • 絶対パスをクリップボードにコピーします。

F5 を使用して、通常どおりビューを更新できます。これにより、現在表示されているすべてが更新されます。


違いを見る

プロジェクト開発で最も一般的な要件の 1 つは、何が変更されたかを確認することです。同じファイルの2つのリビジョン間の違い、または 2 つの別々のファイル間の違いを確認することができます。TortoiseGit は、テキストファイルの違いを表示するためのTortoiseGitMergeという名前の組み込みツールを提供します。画像ファイルの差分を見るために、TortoiseGit もというツールがある TortoiseGitIDiff を。もちろん、必要に応じて、お気に入りの diff プログラムを使用できます。

ファイルの違い

  • ローカル変更

作業ツリーで行った(コミットされていない)変更確認するには、エクスプローラーのコンテキストメニューを使用して、TortoiseGitDiffを選択します。

  • 前のリビジョンとの違い

特定のリビジョンと作業ツリーの違いを確認するには、[ログ]ダイアログを使用し、目的のリビジョンを選択して、コンテキストメニューから[作業ツリーと比較]を選択します(ログダイアログを参照)。最後にコミットされたリビジョンと作業ツリーの違いを確認したい場合、作業ツリーが変更されていないと仮定して、ファイルを右クリックします。次に、TortoiseGit前バージョンとの差分を選択します。これにより、(作業ツリーに記録されている)最終コミット日より前のリビジョンと作業中のBASEの差分が実行されます。これにより、そのファイルに最後に加えられた変更が表示され、現在の作業ツリーに表示される状態になります。作業ツリーよりも新しい変更は表示されません。

  • 2つの以前のリビジョンの違い

すでにコミットされている2つのリビジョンの違いを確認する場合は、[ログ]ダイアログを使用して、比較する2つのリビジョンを選択します(通常のCtrl -modifier を使用)。次に、コンテキストメニューから[リビジョンの比較]を選択します(ログダイアログを参照)。[リビジョンの比較]ダイアログが表示され、変更されたファイルのリストが表示されます(フォルダーフォルダーが事前に適用されている場合があります)。詳細については、バージョンの比較をご覧ください。

  • コミットで行われたすべての変更

特定のリビジョンのすべてのファイルに加えられた変更を1つのビューで表示する場合は、Unified-Diff 出力(GNU パッチ形式)を使用できます。これは、数行のコンテキストの違いのみを示しています。視覚的なファイル比較よりも読みにくいですが、すべての変更をまとめて表示します。[リビジョンログ]ダイアログから目的のリビジョンを選択し、コンテキストメニューから[差分をUnified-Diffとして表示]を選択します。

  • ファイルの違い

2つの異なるファイルの違いを確認したい場合は、両方のファイルを選択して(通常のCtrl -modifier を使用)、エクスプローラーで直接確認できます。次に、エクスプローラーのコンテキストメニューからTortoiseGitDiffを選択します。

  • 別のブランチ/タグとの違い

異なるブランチ(現在のブランチから別のブランチまたは2つのブランチ)の変更を確認する場合は、ログダイアログを使用して、「2つの以前のリビジョンの違い」で説明した2つのリビジョンを選択できます。簡単な方法は、参照ブラウザーを開くことです(参照をすべて参照を参照)。そこで、1つのブランチをクリックして[作業ツリー比較]を選択すると、そのブランチと作業ツリーの現在の状態との間のすべての変更を確認できます。すべての参照を参照で説明されているように、コンテキストメニューを使用して2つのブランチを選択し、それらを比較することもできます。

  • フォルダーの違い

TortoiseGit に付属の組み込みツールは、ディレクトリ階層間の違いの表示をサポートしていません。

サードパーティの diff ツールを構成している場合は、Diff コマンドを選択するときにShiftを使用して、代替ツールを使用できます。組み込みツール。外部プログラム設定を読んで他の差分ツールの設定について調べてください。

行末と空白のオプション

プロジェクトの寿命の中で、行末をからCRLFLF変更したり、セクションのインデントを変更したりする場合があります。残念ながら、コードの意味に変更はありませんが、これにより多数の行が変更済みとしてマークされます。ここのオプションは、違いの比較と適用に関して、これらの変更を管理するのに役立ちます。これらの設定は、バージョンの比較ダイアログ(バージョンの比較を参照)、およびTortoiseGitMergeの設定に表示されます。

行末を無視すると、行末スタイルの違いのみによる変更が除外されます。

空白の比較には、インデントのすべての変更と追加/削除された行としてのインライン空白が含まれます。

空白の変更を無視すると、空白の量またはタイプの変更のみに起因する変更が除外されます。インデントを変更するか、タブをスペースに変更します。以前に空白がなかった場所に空白を追加したり、空白を完全に削除したりしても、変更として表示されます。

すべての空白を無視すると、空白のみの変更はすべて除外されます。

当然、内容が変更された行は常に差分に含まれます。

バージョンの比較

リビジョンの比較ダイアログ

リビジョンの比較ダイアログ

ログダイアログで、2つのコミットを選択すると、コンテキストメニューリビジョンを比較、またはコミットを選択すると、コンテキストメニュー以前のバージョンと比較/作業ツリーと比較 ; またはWindows エクスプローラーで、ファイルまたはフォルダーを選択しない場合、TortoiseGitコンテキストメニュー以前のバージョンとの差分、リビジョンの比較ダイアログが表示されます。

このダイアログには、変更されたすべてのファイルのリストが表示され、コンテキストメニューを使用してそれらを個別に比較できます。

選択したファイルをバージョン1またはバージョン2に戻すことができます。この目的のために2つのメニュー項目があります。コンテキストメニューリビジョンxxxxxxxに戻す/リビジョンyyyyyyy戻す( xxxxxxxはリビジョン1の短いハッシュ、yyyyyyyリビジョンは2の短いハッシュ)

変更ツリーをエクスポートできます。これは、プロジェクトツリー構造を他の誰かに送信する必要があるが、変更されたファイルのみを含む場合に便利です。この操作は選択したファイルに対してのみ機能するため、目的のファイルを選択する必要があります(通常はすべてのファイルを意味します)。次に、コンテキストメニュー選択のエクスポート先...を選択します。変更ツリーを保存する場所の入力を求められます。

コンテキストメニュー選択したファイルのリストを保存...を使用して、変更したファイルのリストをテキストファイルにエクスポートすることもできます

ファイルのリストアクション(変更、追加、削除)もエクスポートする場合は、コンテキストメニュー選択をクリップボードにコピーを使用してそれを行うことができます。

上部のボタンを使用すると、比較の方向を変更できます。AからBへの変更、または必要に応じてBからAへの変更の必要性を示すことができます。

リビジョン番号がオンのボタンを使用して、異なるリビジョン範囲に変更できます。範囲を変更すると、2つのリビジョン間で異なるアイテムのリストが自動的に更新されます。

ファイル名のリストが非常に長い場合は、検索ボックスを使用して、リストを特定のテキストを含むファイル名に減らすことができます。単純なテキスト検索が使用されることに注意してください。そのため、リストをCソースファイルに制限する場合は、.cではなく入力する必要があり*.cます。検索構文は、[ログ]ダイアログで使用できる構文に似ています(ログメッセージのフィルタリングを参照)。

サブモジュール差分ダイアログを使用したサブモジュールの差分

gitの組み込みdiffコマンドはサブモジュールの差分に使用できますが、多くの場合、サブモジュールがどのように変更されたかについての詳細を確認したいことがあります。それが、サブモジュール差分ダイアログを作成した理由です。サブモジュールの差分ダイアログは、サブモジュールのコンテキストメニューのCOmpare with baseエントリを使用して、変更をリポジトリにコミットするまたはステータス情報を取得するを使用してのみアクセスできます。

サブモジュール差分ダイアログ

サブモジュール差分ダイアログ

上部の[差出人]グループボックスには、元のリビジョンの情報が表示されます。その下には、変更されたリビジョンの情報を表示する「To」グループボックスがあります。各グループボックスについて、完全なコミットハッシュが表示され、強調表示してクリップボードにコピーできます。件名(つまり、コミットメッセージの最初の行)が表示され、クリップボードにもコピーできます。[ログの表示]ボタンをクリックすると、新しいログダイアログが表示され、そのリビジョンにジャンプします。

マウントされたサブモジュールのリビジョンの変更により注意を引くために、いくつかのインジケータを追加しました。[宛先]グループボックスには、変更タイプフィールドがあります。タイプをここにリストします:

  • 早送り

トポロジベース。これは早送りの変更のためです。

  • 巻き戻す

トポロジベース。これは、早送りの変更の逆方向です。

  • 新しいコミット時間

時間ベース。早送りでも巻き戻しでもない場合は、コミット時間を比較します。これは、元のリビジョンよりもコミット時間が新しいリビジョン用です。

  • 古いコミット時間

時間ベース。これは、「新しいコミット時間」の逆転です。

  • 同じコミット時間

時間ベース。コミット時間は同じです。これは、コミットを自動生成するか、2人で同時にコミットすることで生成されます。

  • 新しいサブモジュール

これは、新しく追加されたサブモジュール用です。

  • サブモジュールを削除

これは、削除されたサブモジュール用です。

  • 道の

これは、変更されていないサブモジュールリビジョンハッシュ、エラーなどのためです。

サブモジュールの現在のワークスペースが汚れている場合、コミットハッシュは黄色の背景と赤色のテキストでレンダリングされます。

両方のグループボックスで、リビジョンが取得されない場合、サブモジュールが初期化されない場合、またはその他のエラーがある場合、コミットハッシュは赤の背景でレンダリングされます。

TortoiseGitIDiffを使用した画像の差分

独自のTortoiseGitMergeを含む、テキストファイルの比較に使用できるツールは多数ありますが、画像ファイルがどのように変更されたかを確認したいことがよくあります。これがTortoiseGitIDiffを作成した理由です。

画像差分ビューア

画像差分ビューア

TortoiseGit → 一般的な画像ファイル形式のDiffは、TortoiseGitIDiffを起動して画像の違いを表示します。デフォルトでは、画像は横に並んで表示されますが、代わりに(表示)メニューまたはツールバーを使用して上下の表示に切り替えることができます。または、必要に応じて、画像をオーバーレイしてライトボックスを使用しているふりをすることができます。

当然、画像をズームインおよびズームアウトしてパンすることもできます。左ドラッグするだけで画像をパンすることもできます。[画像を一緒にリンク]オプションを選択すると、両方の画像のパンコントロール(スクロールバー、マウスホイール)がリンクされます。

画像情報ボックスには、ピクセル単位のサイズ、解像度、色深度など、画像ファイルに関する詳細が表示されます。このボックスが邪魔になる場合は、表示画像情報を使用して非表示にします。マウスを画像のタイトルバーの上に置くと、ツールチップで同じ情報を取得できます。

画像がオーバーレイされると、画像の相対的な強度(アルファブレンド)は、左側のスライダーコントロールによって制御されます。スライダーの任意の場所をクリックしてブレンドを直接設定するか、スライダーをドラッグしてブレンドをインタラクティブに変更できます。Ctrlキー+ Shiftキー - ホイールは、ブレンドを変更します。

スライダーの上のボタンは、2つのプリセットブレンドを切り替えます。ブレンドスライダーの両側にあるマーカーで示されます。デフォルトでは、一方が上部にあり、もう一方が下部にあるため、トグルボタンは、一方の画像と他方の画像を切り替えるだけです。マーカーを移動して、トグルボタンが使用する2つのブレンド値を選択できます。

ブレンドではなく、違いを見たい場合があります。プリント基板の2つのリビジョンの画像ファイルがあり、どのトラックが変更されたかを確認したい場合があります。アルファブレンドモードを無効にすると、その差はピクセルカラー値のXORとして表示されます。変更されていない領域は真っ白になり、変更は色付きになります。

外部差分/マージツール

私たちが提供するツールが必要なことをしない場合は、利用可能な多くのオープンソースまたは商用プログラムのいずれかを試してください。誰もが自分のお気に入りを持っています、そして、このリストは決して完全ではありません、しかし、あなたが考慮するかもしれないいくつかはここにあります:

  • WinMerge

WinMergeは、ディレクトリを処理できる優れたオープンソースdiffツールです。

  • PERFORCEマージ

Perforceは市販のRCSですが、diff / mergeツールは無料でダウンロードできます。Perforceから詳細情報を入手してください。

  • KDiff3

KDiff3は、ディレクトリも処理できる無料のdiffツールです。こちらからダウンロードできます。

  • ExamDiff

ExamDiff Standardはフリーウェアです。ファイルは処理できますが、ディレクトリは処理できません。ExamDiff Proはシェアウェアであり、ディレクトリdiffや編集機能などの多くの機能を追加します。どちらのフレーバーでも、バージョン3.2以降はユニコードを処理できます。PrestoSoftからダウンロードできます。

  • Beyond Compare

ExamDiff Proと同様に、これはディレクトリdiffとUnicodeを処理できる優れたシェアウェアdiffツールです。Scooter Softwareからダウンロードします。

  • Araxis Merge

Araxis Mergeは、ファイルとフォルダーの両方を比較およびマージするための便利な商用ツールです。マージで3者間比較を行い、関数の順序を変更した場合に使用する同期リンクがあります。Araxisからダウンロードします。

  • SciTE

このテキストエディタには、統合された差分の構文の色分けが含まれており、読みやすくなっています。Scintillaからダウンロードします。

  • Notepad2

Notepad2は、標準のWindows Notepadプログラムの代替として設計されており、Scintillaのオープンソース編集コントロールに基づいています。統合された差分の表示に適しているだけでなく、ほとんどのジョブでWindowsのメモ帳よりもはるかに優れています。こちらから無料でダウンロードできます。Notepad2は、LFのみの行末をサポートする代替エディターとしてTortoiseGitセットアップに含まれています。Notepad2という名前のスタートメニューにエントリが作成されます。

これらのツールを使用するためにTortoiseGitをセットアップする方法については、外部プログラム設定をお読みください。


新しいファイルを追加する

バージョン管理されていないファイルのエクスプローラーコンテキストメニュー

バージョン管理されていないファイルのエクスプローラーコンテキストメニュー

開発プロセス中に新しいファイルを作成した場合は、ソース管理にも追加する必要があります。ファイルまたは空のディレクトリを選択し、TortoiseGitAddを使用します。

ファイルをソース管理に追加すると、ファイルにaddedアイコンオーバーレイが表示されます。これは、作業ツリーをコミット(およびプッシュ)して、それらのファイルを他の開発者が使用できるようにする必要があることを意味します。ファイルを追加するだけでは、リモートリポジトリに影響しません。

多くの追加

フォルダーで[追加]コマンドを使用することもできます。その場合、追加ダイアログには、そのバージョン管理フォルダー内のバージョン管理されていないファイルがすべて表示されます。これは、多くの新しいファイルがあり、それらを一度に追加する必要がある場合に役立ちます。

空のディレクトリ

Gitはコンテンツのみを追跡するため、ディレクトリをバージョン管理(空)することはできません。チェックアウト時にディレクトリを自動的に作成する必要がある場合は、バージョン管理されたファイルが少なくとも1つ存在することを確認してください(例:.gitkeepまたはなどのプレースホルダーファイル.gitignore)。

作業ツリーの外部からファイルを追加するには、ドラッグアンドドロップハンドラーを使用できます。

  1. 追加するファイルを選択します
  2. 作業ツリー内の新しい場所に右ドラッグします
  3. マウスの右ボタンを放します
  4. [コンテキストメニュー][ Gitコピーの追加とファイルの追加]を選択します。ファイルは作業ツリーにコピーされ、バージョン管理に追加されます。

コミットダイアログにドラッグアンドドロップするだけで、作業ツリー内にファイルを追加することもできます。

間違ってファイルを追加した場合、TortoiseGit削除(ローカルに保存)...またはRevertを使用して、コミットする前に追加を取り消すことができます。

詳細については、git-add(1)をご覧ください。


ファイルとフォルダーのコピー/移動/名前変更

リポジトリ内の別のプロジェクトに必要なファイルが既にあり、それらを単にコピーしたいことがよくあります。1つの方法は、ファイルを単にコピーし、上記のように手動で追加することです。

作業ツリー内からファイルとフォルダーをコピーする最も簡単な方法は、右ドラッグメニューを使用することです。ある作業ツリーから別の作業ツリー、または同じフォルダー内にファイルまたはフォルダーを右ドラッグすると、マウスを離すとコンテキストメニューが表示されます。

バージョン管理下のディレクトリの右ドラッグメニュー

バージョン管理下のディレクトリの右ドラッグメニュー

これで、既存のバージョン管理されたコンテンツを新しい場所にコピーし、同時に名前を変更することができます。

ファイルの古いバージョンを取得するには、リポジトリブラウザを使用して目的のコンテンツを見つけ、リポジトリから作業ツリーに直接コピーするか、リポジトリ内の2つの場所間でコピーします。詳細については、リポジトリブラウザーを参照してください。

リポジトリ間でコピーできません

リポジトリ内でファイルやフォルダをコピーおよびコピーできますが、TortoiseGitを使用して履歴を保持しながら、あるリポジトリから別のリポジトリにコピーまたは移動することはできません。リポジトリが同じサーバー上にある場合でも。できることは、現在の状態のコンテンツをコピーして、新しいコンテンツとして2番目のリポジトリに追加することだけです。

Gitはコンテンツのみを追跡します

Gitはコンテンツのみを追跡するため、Subversionのようなバージョン管理システムのようにコピーや移動を明示的に記録する必要はありません。Gitは、ログを計算するときに、ファイルの内容に基づいてコピー/名前変更/移動を自動的に検出します。


ファイルとディレクトリを無視する

バージョン管理されていないファイルのエクスプローラーコンテキストメニュー

バージョン管理されていないファイルのエクスプローラーコンテキストメニュー

ほとんどのプロジェクトでは、バージョン管理の対象とならないファイルとフォルダーがあります。これらは、コンパイラによって作成されたファイルが含まれる場合があります、*.obj, *.lst多分出力フォルダは、実行可能ファイルを格納するために使用されますbin/, obj/。その他の例には、ユーザー固有のワークスペース設定*.suo, *.user(Visual Studio)、バックアップファイル*.bak, Backup*/、シェルメタデータファイルが含まれますThumbs.db, Desktop.ini, .DS_Store/。変更をコミットするたびに、TortoiseGitはバージョン管理されていないファイルを表示し、コミットダイアログのファイルリストがいっぱいになります。もちろん、この表示をオフにすることもできますが、新しいソースファイルの追加を忘れることがあります。

これらの問題を回避する最善の方法は、派生ファイルをプロジェクトの無視リストに追加することです。そうすれば、それらはコミットダイアログに表示されることはありませんが、本物のバージョン管理されていないソースファイルにはまだフラグが立てられます。

バージョン管理されていないファイルを右クリックして、コンテキストメニューからコマンドTortoiseGit無視リストに追加を選択すると、名前または拡張子による無視を選択できるサブメニューが表示されます。[無視]ダイアログは、無視タイプと無視ファイルを選択できることを示しています。

無視ダイアログ

ダイアログを無視

タイプを無視

  • 含まれるフォルダー内のアイテムのみを無視する そのフォルダー内の選択されたパターンのみを無視します。
  • アイテムを再帰的に無視する そのフォルダーおよび子フォルダー内の選択されたパターンを持つアイテムを無視します。

ファイルを無視

  • リポジトリルートの.gitignore リポジトリルートの.gitignoreに無視エントリを書き込みます。これにより、無視リストをリモートリポジトリと同期できます。
  • アイテムの含まれるディレクトリ内の.gitignore アイテムの格納ディレクトリに.gitignoreの無視エントリを書き込みます。これにより、無視リストをリモートリポジトリと同期できます。
  • .git / info / exclude リポジトリメタデータの.git / info / excludeに無視エントリを書き込みます。これにより、無視リストをローカルに保存できますが、リモートリポジトリと同期できません。

TortoiseGitの現在のバージョンで無視リストから1つ以上のアイテムを削除する場合は、Unix EOLを処理できるテキストエディターを使用して無視リストファイルを手動で編集する必要があります。これにより、以下のセクションで説明するファイル名のグロビングを使用して、より一般的なパターンを指定できます。詳細については、gitignore(5)をお読みください。各無視パターンは別の行に配置する必要があることに注意してください。スペースで区切っても機能しません。

無視リストのパターンマッチング

Gitの無視パターンは、メタ文字をワイルドカードとして使用してファイルを指定するためにUnixで最初に使用された手法であるファイル名グロビングを使用します。次の文字には特別な意味があります。

  • *

空の文字列(文字なし)を含む、任意の文字列に一致します。

  • ?

任意の1文字に一致します。

  • [...]

角括弧で囲まれた文字のいずれかと一致します。括弧内では、「-」で区切られた1組の文字が、2つの間の字句的に一致する文字に一致します。例えば、[AGm-p]のいずれかと一致しAGmnoまたはp

パターンマッチングでは大文字と小文字が区別され、Windowsで問題が発生する可能性があります。文字をペアにすることで、大文字と小文字を区別しないようにすることができます。*.tmp大文字小文字に関係なく無視するには、のようなパターンを使用できます*.[Tt][Mm][Pp]


削除、移動、名前の変更

CVSとは異なり、Gitではファイルとフォルダーの名前変更と移動が可能です。そのため、TortoiseGitサブメニューには、削除および名前変更のためのメニューエントリがあります。ただし、SVNとは異なり、Gitはファイル名を追跡しません。Gitはファイルのコンテンツのみを追跡します。そのため、一般にGitの名前変更機能を使用したり、機能を削除したり、SVNのように「名前変更を修復」する必要はありません。ログを表示すると、名前の変更とコピーが自動的に検出されます。ただし、Gitの削除および移動機能を使用すると、ファイルはGitインデックスから自動的に削除され(つまり、欠落として表示されず、削除されます)、移動/名前変更の場合も新しい名前(つまり、新しい名前バージョン管理外として表示されません)。

バージョン管理されたファイルのエクスプローラーコンテキストメニュー

バージョン管理されたファイルのエクスプローラーコンテキストメニュー

ファイルとフォルダーを削除する

TortoiseGit削除を使用して、Gitからファイルまたはフォルダーを削除します。

あなたがするとTortoiseGit削除ファイルを、それが作業ツリーから削除された直後にだけでなく、次のコミットでリポジトリに削除のためにマークされます。変更をコミットするまで、TortoiseGit → 親フォルダー、またはリポジトリへの変更のコミットまたはステータス情報の取得で、Revertを使用してファイルを戻すことができます。

リポジトリからアイテムを削除するが、バージョン管理されていないファイル/フォルダーとしてローカルに保持する場合は、拡張コンテキストメニュー削除(ローカルに保持)を使用します。拡張コンテキストメニューでこれを表示するには、Shiftキーを押しながら、エクスプローラーリストペイン(右ペイン)の項目を右クリックする必要があります。

削除されたファイルまたはフォルダーを取り戻す

ファイルまたはフォルダーを削除し、その削除操作をリポジトリーに既にコミットしている場合、通常のTortoiseGit復元では、それを元に戻すことはできません。ただし、ファイルまたはフォルダーはまったく失われません。ファイルまたはフォルダーが削除されたリビジョンがわかっている場合(ない場合は、ログダイアログを使用して確認)、リポジトリブラウザーを開き、そのリビジョンに切り替えます。次に、削除したファイルまたはフォルダーを選択し、右クリックして[コンテキストメニュー] → [このリビジョンに戻す]を選択します。詳細については、リポジトリブラウザおよびログダイアログを参照してください。

ファイルとフォルダーの移動

ファイルまたはフォルダの単純なインプレース名前変更を行いたい場合は、コンテキストメニュー名前の変更...を使用して、アイテムの新しい名前を入力します。

作業ツリー内のファイルを別のサブフォルダーに移動する場合は、右マウスドラッグアンドドロップハンドラーを使用できます。

  1. 移動するファイルまたはディレクトリを選択します
  2. 作業ツリー内の新しい場所に右ドラッグします
  3. マウスの右ボタンを放します
  4. ポップアップメニューで[コンテキストメニュー][ Gitバージョン管理ファイルの移動]を選択します

サブモジュールをGitで移動しない

を使用して作成されたフォルダーに対して TortoiseGit の Move または Rename コマンドを使用しないでください。git submodule

ファイル名の大文字と小文字の変更

Windows はデフォルトでファイル名の大文字と小文字を区別しないため、ファイル名の大文字と小文字のみの変更には特別な注意が必要です。したがって、エクスプローラーの名前変更コマンドを使用してファイルの名前を変更するだけでは機能しない可能性があります。インデックスを更新して新しいファイル名を使用するようにするには、Gitを使用して名前を変更することが重要です。TortoiseGit サブメニューの[名前の変更...]コマンドを使用します。

ファイル名の大文字と小文字の競合への対処

リポジトリにすでに同じ名前の2つのファイルが含まれていて、大文字と小文字のみが異なる場合(TEST.TXTおよびなどtest.txt)、コミットすることはできず、Windows クライアントでチェックアウトできるのはそのうちの1つだけです。(一般的に)Gitは大文字と小文字を区別するファイル名をサポートしていますが、Windows はサポートしていません。

これは、Linux などの大文字と小文字を区別するファイルシステムを持つシステムからファイルがコミットされた場合、または core.ignorecase の設定が false に設定されている場合に発生します(git-config(1)を参照)。

その場合、どちらを保持するかを決定し、他のリポジトリをリポジトリから削除する(または他の名前を変更する)必要があります。最も簡単な方法は、大文字と小文字を区別するファイルシステムでそれを行い、その後に変更をコミットしてプッシュすることです。Windows でそれを行うには、いくつかの手順(および2つのコミット)が必要です。

解法

  1. エクスプローラーでファイルを削除します。
    • 注意 TortoiseGit サブメニューで[削除]または[削除(ローカルに保持)]コマンドを使用しないでください。
  2. コミットダイアログを開きます。(チェックされたアイテムはすべてDeletedステータスです。)
  3. 保持するアイテムを1つだけ選択解除します。
  4. 変更をコミットします。
  5. 必要なファイルの削除を取り消すと、元に戻ります。「同じ」名前で、新しい名前を付けたファイルを両方とも保持する場合は、問題のすべてのファイルに対してこれを実行し、次のファイルに進む前に名前を変更します。

バージョン管理されていないファイルの削除

通常、生成されたすべてのファイルが Git で無視されるように、無視リストを設定します。しかし、これらの無視されたアイテムをすべてクリアして、クリーンなビルドを作成したい場合はどうでしょうか?通常はメイクファイルで設定しますが、メイクファイルをデバッグする場合、またはビルドシステムを変更する場合は、デッキをクリアする方法があると便利です。

TortoiseGit は、拡張コンテキストメニュークリーンアップ...を使用して、まさにそのようなオプションを提供します。コンテキストメニューでこれを表示するには、Shift キーを押しながらエクスプローラーリストペイン(右ペイン)でフォルダーを右クリックする必要がある場合があります。これにより、可能なすべてのクリーンアップオプションをリストするダイアログが表示されます(クリーンアップを参照)。


変更を元に戻します

最後のコミット以降にファイルに加えたすべての変更を取り消す場合は、ファイルを選択する必要があります。右クリックしてコンテキストメニューをポップアップし、コマンドTortoiseGitRevert Aダイアログを選択します。変更され、元に戻すことができます。戻すものを選択し、[OK]をクリックします。

元に戻すダイアログ

元に戻すダイアログ

削除または名前の変更を取り消す場合は、削除されたアイテムが存在しないため、親フォルダーで(元に戻す)を使用して右クリックする必要があります。

アイテムの追加を取り消す場合は、コンテキストメニューにTortoiseGit削除(ローカルに保持)として表示されます。これも実際には元に戻しますが、名前を変更してわかりやすくしました。

このダイアログの列は、変更の確認ダイアログの列と同じ方法でカスタマイズできます。詳細については、ステータスをお読みください。

コミットされた変更を元に戻す

元に戻すと、ローカルの変更のみが元に戻ります。すでにコミットされた変更元に戻されませ。あなたが特定のリビジョンにコミットされたすべての変更を元に戻したい場合は、読んでログダイアログリポジトリブラウザ詳細についてを。

コミット全体を元に戻す

コミット全体を取り消す場合は、ログダイアログを使用して、リビジョン/コミットでこのコミットによる変更を元に戻すを選択する必要があります(ログダイアログを参照)。その後、このコミットのすべての変更が取り消され、手動でコミットする必要があるリバートコミットが作成されます(git-revert(1)を参照)。前のコミットに(ハード)リセットし、その後のすべてのコミットを忘れることも可能です(リセットを参照)-これは、変更がすでにプッシュされている場合はお勧めできません(https://stackoverflow.com/q/27032850/3906760も参照してください)。

復帰が遅い

変更を元に戻すと、操作に予想よりもはるかに長い時間がかかる場合があります。これは、ファイルの変更されたバージョンがごみ箱に送信されるため、誤って元に戻した場合に変更を取得できるためです。ただし、ごみ箱がいっぱいの場合、Windows はファイルを置く場所を見つけるのに時間がかかります。解決策は簡単です。ごみ箱を空にするか、TortoiseGit の設定の[元に戻すときにごみ箱を使用する]を無効にします。

Revert!=ファイルの「git revert」

TortoiseGit では、ファイルの「元に戻す」という名前は、ファイルを最後の(または特定の)コミット状態にリセットすることに相当しますgit checkout HEAD -- filename(またはgit checkout REVISION -- filename)。これは、git-revert(1)とは関係ありません!

git-revert(1)は、ログダイアログのこのコミットによる変更を元に戻すことでのみ参照されます(ログダイアログを参照)。


掃除

作業ツリーから未追跡または無視されたファイルを削除するには、TortoiseGitCleanupを使用します。次に、現在のディレクトリまたは作業ツリー全体(インストールされているgitのバージョンによって異なります)から開始して、バージョン管理下にない、または無視されるファイルを再帰的に削除して作業ツリーをクリーンアップできるダイアログが表示されます。

クリーンダイアログ

クリーンダイアログ

すべての追跡されていないファイルを消去するこれにより、Git によって無視されたファイルを含むすべての追跡されていないファイルが削除されます。これが最もクリーンなオプションです。

無視されていない追跡されていないファイルのみを消去するこれにより、追跡されていないファイルが削除されますが、Git によって無視されるファイルは除外されます。

無視されたファイルのみを消去するこれにより、Git によって無視されたファイルのみが削除されます。

追跡されていないディレクトリを削除するこれにより、追跡されていないディレクトリも削除されます。

ごみ箱を使用しないでくださいこれらのファイルを直接永久に削除する場合は、このオプションを使用します。後悔しないでください!

ドライランこれは、削除するファイルのリストを提供するだけですが、削除は実行しません。

サブモジュールこれは、サブモジュールも再帰的にクリーニングします。

詳細については、git-clean(1)をご覧ください。


リセットする

リセットダイアログを使用して、現在の HEAD を指定された状態にリセットし、オプションでインデックスと作業ツリーをリセットすることもできます。これは、マージを中止するためにも使用できます。

リセットダイアログ

リセットダイアログ

マージの中止ダイアログ

マージの中止ダイアログ

[リセット]ダイアログで、[...]をクリックしてログを参照し、特定のバージョンを選択できます。Abort mergeダイアログでは、HEAD にのみリセットできます。

ソフト:作業ツリーとインデックスはそのままにしておきます(インデックスファイルや作業ツリーにはまったく触れません(ただし、すべてのモードがそうであるように、選択したコミットにヘッドをリセットします)。これにより、変更されたファイルはすべて、以前と同様に「コミットされる変更」のままになります。このオプションは、[マージの中止]ダイアログでは使用できません。

混合:作業ツリーをそのまま残し、インデックスをリセットします作業ツリーではなくインデックスをリセットします(つまり、変更されたファイルは保存されますが、コミットのマークは付けられません)。これはgitのデフォルトアクションです。このオプションは、マージを中止できます。

ハード:作業ツリーとインデックスをリセットします(すべてのローカル変更を破棄します)インデックスと作業ツリーをリセットします。選択したコミット以降の作業ツリー内の追跡ファイルへの変更は破棄されます。このオプションはマージを中止できますが、これはマージの中止ダイアログのデフォルトのアクションです。

GitハードリセットはWindowsのごみ箱を使用しません

TortoiseGit の復帰またはクリーン機能とは異なり、ハードリセットは Windows のごみ箱を使用しません。つまり、コミットされていない変更は失われる可能性があります。

詳細については、git-reset(1)を参照してください。


スタッシュの変更

多くの場合、プロジェクトの一部で作業しているとき、物事は乱雑な状態にあり、他の何かで作業するために少しブランチを切り替えたいと思います。問題は、後でこの点に戻ることができるように、半分完了した作業のコミットを行いたくないということです。この問題に対する答えは、git stash コマンドです。

Stashing は、作業ディレクトリのダーティな状態(つまり、変更された追跡ファイルとステージングされた変更)を取得し、いつでも(別のブランチでも)再適用できる未完成の変更のスタックに保存します。

Tips

TortoiseGit には、チェンジリスト(チェンジリスト)と呼ばれる同様の機能があり、コミットの構造化に使用できます。

作業ディレクトリとインデックスの現在の状態を記録したいが、クリーンな作業ディレクトリに戻りたい場合は、フォルダを右クリックしてコンテキストメニューを表示し、コマンドTortoiseGitStash changes Aダイアログを選択しますオプションでこの状態のメッセージを入力できる場所がポップアップします。

スタッシュ変更ダイアログ

Stash変更ダイアログ

また、未追跡のファイルを含めるを選択して、未追跡のファイルを隠しておくこともできます。人跡未踏のファイルに加えて、無視されたファイルを含め、離れて、すべてのファイルを隠しておくために、選択し--all。

隠された変更が存在することをTortoiseGitが検出すると、コンテキストメニューが拡張されます。

(un)stash オプション

(un)stashオプション

スタッシュはスタックとして実装されます。Stash Apply は、最新の stash の変更を作業ツリーに適用します。Stash Popも同じことを行いますが、最新のスタッシュを適用後にスタックから削除します。隠し変更は引き続き可能です。作業コピーの現在の変更をスタックの一番上に隠します。スタッシュリストは、スタッシュスタック全体の概要を提供します。そこに隠された変更を削除して表示することもできます(ログダイアログおよび参照ログと同様)。

対立

主要なマージ作業が自動的にスタッシュを適用するのgitによって行われているが、競合はチェリーピッキング時に発生する可能性があり、(すなわち、ファイルは現在のブランチにもスタッシュに修正された)、を参照してください競合の解消をどのように競合を解決します。

競合エディターの「REMOTE」/「theirs」は、stash を適用する前に、作業ツリーのstashと「LOCAL」/「mine」をバージョンにマージすることに注意してください。

詳細については、git-stash(1)を参照してください。


バイセクト

どのリビジョンがバグを導入したかを知りたい場合は、二分機能を使用できます。フォルダを右クリックしてコンテキストメニューをポップアップ表示し、TortoiseGitBisect startコマンドを選択します。ダイアログが表示されます:

二等分開始

二等分開始

最後の既知の正常なリビジョンと最初または1つの既知の不良(通常は HEAD)を入力します。

打った後に OK、Gitはまず障害のあるリビジョンのバイナリ検索を実行します: Git は途中で改訂版に切り替わります。これで、このリビジョンをテストできます。

TortoiseGit のコンテキストメニューに3つの新しいオプションが追加されました。

二等分オプション

二等分オプション

このリビジョンに問題がなければ、TortoiseGitBisect goodをヒットします。そうでない場合は、TortoiseGitBisect badをヒットします。このリビジョンをスキップするには、TortoiseGitBisect skip Git はバイナリ検索を続行し、「次の」リビジョンに切り替えて、テストできるようにします。これは、障害のあるリビジョンが見つかるか、TortoiseGitBisectリセットをクリックしてこの操作を中止するまで続きます(これにより、bisect プロセスがリセットされ、以前のブランチ/ HEAD が切り替わります)。

リビジョンを選択する

リビジョンをテストできない場合、または別のリビジョンを使用したい場合は、ログに簡単に移動して、現在のHEADを希望するリビジョンに(ハード)リセットできます。

サブモジュール

サブモジュールを使用する場合、すべての依存関係が最新になるように、各 bisect ステップの後にそれらを更新する必要があります。

詳細については、git-bisect(1)をご覧ください。


分岐/タグ付け

バージョン管理システムの機能の1つは、変更を別の開発ラインに分離する機能です。この行はブランチとして知られています。ブランチは、コンパイラエラーやバグで開発のメインラインを妨げることなく、新しい機能を試すためによく使用されます。新機能が十分に安定するとすぐに、開発ブランチがメインブランチにマージされます。

バージョン管理システムのもう1つの機能は、特定のリビジョン(リリースバージョンなど)をマークできるため、特定のビルドまたは環境をいつでも再作成できることです。このプロセスはタグ付けと呼ばれます

Git は分岐とタグ付けに非常に強力です。ブランチとタグの作成は非常に簡単です。

ブランチまたはタグの作成

ブランチの作成は非常に簡単です:TortoiseGitブランチの作成...

ブランチダイアログ

ブランチダイアログ

支店:支店名を入力します。

タグの作成は非常に簡単です:TortoiseGitタグの作成...

タグダイアログ

タグダイアログ

タグ:タグ名を入力します。

ベースとなるコミットを1つ選択できます。

現在のコミットがチェックアウトされました。

  • ブランチ

選択したブランチの最新のコミット。

  • タグ

選択したタグのコミット。

  • コミット

任意のコミット、...をクリックしてログダイアログを起動し、コミットを選択します。コミットハッシュ、またはなどのフレンドリコミット名を入力することもできますHEAD~4

作業ツリーを新しく作成されたブランチに自動的に切り替えるには、[新しいブランチ/タグに切り替える]チェックボックスを使用します。ただし、その場合は、まず作業ツリーに変更が含まれていないことを確認してください。存在する場合、これらの変更は、切り替え時にブランチ作業ツリーにマージされます。

trackは3つの値を持つチェックボックスです。チェックされている場合--trackのGitに渡されOK、オフになっている場合、--no-trackの Git に渡され OK。3番目の状態は、OK--trackでも--no-trackgitにも渡されないことを示します- 構成変数(git-config(1)を参照およびgit-branch(1)のドキュメントを参照してください。branch.autosetupmerge--track parameter

チェック・サインタグに署名したGPGを作成します。これは、GPGを必要とし、構成変数は、user.signingkey(参照設定するGitの構成gitの-設定(1))を。

Tips

GPG 1.4(Git for Windowsに付属)を使用する場合、これにはパスフレーズなしのキーが必要です。GPG> = 2には pageant などのエージェントが付属しているため、パスフレーズで保護されたキーでも機能しますが、正しい gpg.exe を使用するようにgitを構成する必要がある場合があります。これは、構成変数gpg.program(たとえば、C:/Program Files (x86)/GNU/GnuPG/pub/gpg.exe)を設定することで実行できます。これをGpg4winでテストしました(GPG4winバニラで十分であり、バージョン2.2.xではGPG 1.4キーファイルとも互換性があります)。

[OK]を押して、ローカルリポジトリにブランチまたはタグを作成します

作業ツリーを新しく作成したブランチに切り替えることを選択しない限り、ブランチまたはタグを作成しても作業ツリーに影響しません。作業ツリーからブランチを作成しても、それらの変更は新しいブランチではなく、元のブランチにコミットされます。

作業ツリーをタグ/ブランチに切り替える方法については、作業ツリーのチェックアウト(コミットへの切り替え)を参照してください。

あなたはより多くの情報を見つけることができますと呼ばれるセクションgitのブランチ(1)gitのタグ(1)


マージ

ブランチを使用して開発の個別の行を維持する場合、ある段階で、あるブランチで行われた変更を別のブランチにマージしたり、その逆を行うことができます。

Git を使用する前に、Git での分岐とマージの仕組みを理解することが重要です。これは非常に複雑になる可能性があるためです。Git およびマージに関する詳細情報の参照先については、読書ガイドを参照してください。

次に注意すべき点は、マージは常に作業ツリー内で行われるということです。変更ブランチにマージする場合は、そのブランチの作業ツリーをチェックアウトして、TortoiseGitマージ...を使用してその作業ツリーからマージウィザードを起動する必要があります。

# マージダイアログ

マージダイアログ

一般に、変更されていない作業ツリーへのマージを実行することをお勧めします。作業ツリーで他の変更を行った場合は、最初にそれらをコミットします。マージが期待通りに進まない場合は、マージを中止するコマンドを使用してマージを中止することをお勧めします。これにより、すべての変更が破棄される場合があります(ハードの場合はモードによって異なります)。

マージするコミットを1つ選択できます。

現在のコミットがチェックアウトされました。

  • ブランチ

選択したブランチの最新のコミット。

  • タグ

選択したタグのコミット。

  • コミット

任意のコミット、...をクリックしてログダイアログを起動し、コミットを選択します。コミットハッシュ、またはなどのフレンドリコミット名を入力することもできますHEAD~4

スカッシュは、他のブランチからの変更をマージするだけです。情報をマージできません。新しいコミットはマージブランチを1つの親コミットとして記録しません。ログビューには、2つのブランチ間のマージラインは表示されません。

早送りなしマージが早送りとして解決された場合でも、マージコミットを生成します。早送りマージと非早送りマージの例については、https://stackoverflow.com/q/41794529/3906760を参照してください。

コミットなしマージ後にコミットを自動的に作成しません。

メッセージログメッセージに、マージされる実際のコミットからの1行の説明を入力します。マージメッセージに含めるコミットの数を指定できます。

対立

主要なマージ作業を自動的にgitで行われているが、競合がマージ中に発生する可能性があり(つまり、ファイルは両方の枝、現在のものとマージする1で修正された)、を参照してください競合の解消をどのように競合を解決します。

競合エディターの「REMOTE」/「theirs」は、マージするために選択したブランチの変更と、作業ツリーのHEADバージョンへの「LOCAL」/「mine」の変更を指すことに注意してください。

詳細については、git-merge(1)をご覧ください。


チェリーピック

TortoiseGit のチェリーピッキングは、リビジョンログダイアログから呼び出されます。このダイアログ内で、チェリーピックするコミットを選択し、選択したコミットの1つを右クリックしてコンテキストメニューをポップアップします。チェリーを選択してこのコミットを選択...(またはチェリーを選択してコミットを選択...複数のコミットが選択されている場合)。

Cherry Pick ダイアログが表示されます。

チェリーピックダイアログ

チェリーピックダイアログ

Cherry Pickダイアログは、Rebaseダイアログに似ています。上の表には、選択したチェリーピックのコミットごとに1行が表示されます。その下のボタンは、アクション(Pick、Squash、Edit、Skip)および複数のコミットが選択される順序を制御します。行を選択すると、コミットの影響を受けるファイルが表示されます。

対立

チェリーピッキングしながら、主要なマージ作業を自動的にgitで行われているが、競合はチェリーピッキング時に発生する可能性があり、(すなわち、ファイルは現在のブランチにも一つ以上に変更されたあなたはチェリーピッキングあるコミット)、参照してください。競合の解決方法に関する競合の解決

競合エディターの「REMOTE」/「theirs」は作業中のツリーのHEADバージョンに対する選択および「LOCAL」/「mine」の変更を指すことに注意してください。

詳細については、git-cherry-pick(1)をご覧ください。


リベース

Rebase は非常に複雑で、リポジトリの履歴を変更/書き換えます。原則を理解してから使用してください(Git とリベースに関する詳細情報の参照先については、読書ガイド、特にgit-rebase(1)を参照してください)。

TortoiseGitリベース

[リベース]ダイアログが表示されます。

リベースダイアログ

リベースダイアログ

コミットのリベースは、リストの一番下から一番上まで(ID 列の昇順で)行われます。たとえばsquash、コミットは、リストの下にある(より低い ID の)以前のコミットと一緒に押しつぶされたり結合されたりすることを意味します。

Tips

代わりに設定するのではpickskipeditsquashコンテキスト・メニューを使用して、あなたはまた、次のキーを使用することができます。スペース:状態をシフト、S:skipE:editP:pickQ:squash

Tips

ブランチとアップストリームを入れ替えるボタンがあります。現在masterブランチで作業しており、ブランチをにリベースしたいとfeaturemasterます。feature事前に切り替えるのではなくfeature、ログリストのコミットを選択し、コンテキストメニューリベースして、このスワップボタンをクリックします。TortoiseGit のリベースは直接に移動featuremaster、コミットをチェリーピックします。このアプローチは、より少ないファイルに触れ、より高速に実行します。

重要

マージコミットを保持する場合、すべてのケースでコミットの並べ替えを適切に処理することはできません。vanillagit rebase の既知のバグであるgit-rebase(1)を参照してください。

対立

メジャーマージ作業はリベース中にgitによって自動的に行われますが、リベース中に競合が発生する可能性があります(つまり、リベースしているブランチとリベースしているブランチの両方でファイルが変更されました)。競合の解決方法に関する競合の解決

競合エディターの「REMOTE」/「theirs」は、リベースするブランチの変更と、リベースするブランチの「LOCAL」/「mine」のバージョンを指すことに注意してください。


競合の解決

マージ中に、作業ツリーファイルが更新され、マージの結果が反映されます。時々、別のブランチのマージ、チェリーピックコミット、リベースまたはスタッシュの適用時に競合が発生します:共通の祖先のバージョンに加えられた変更のうち、重複していないもの(つまり、ファイルは、反対側がその領域をそのまま残したまま、またはその逆)、最終結果にそのまま組み込まれます。ただし、両方の側が同じ領域に変更を加えた場合、Git は一方の側を他方に対してランダムに選択することはできず、両側がその領域に対して行ったことをそのままにして解決するように求めます。競合が報告されるたびに、それを解決する必要があります!

競合する領域は、ファイル内で次のようにマークされています(「競合の表示方法も参照)。

<<<<<<< yours
    あなたの変更
=======
    マージされたコードからの変更
>>>>>>> their

任意のエディターを使用して手動で競合を解決するか、TortoiseGitEdit Conflictsを使用して外部マージツール/競合エディターを起動できます。次に、TortoiseGitは、選択した競合ファイルのディレクトリに3つの追加ファイルを配置し、構成済みの競合エディターを起動します。

  • filename.ext.BASE.ext

これは、競合するファイルの共通の祖先のバージョンです(このバージョンには、マージされるブランチ/リビジョンの変更も変更も含まれません。特に、競合マーカーは含まれません)。

  • filename.ext.LOCAL.ext

これは、マージを開始する前に作業ツリーに存在していたファイルです(つまり、ファイルはローカルリポジトリのHEADの最新のコミット済み状態に準拠しています)。つまり、競合マーカーはありません。そのため、この状態/バージョンは「鉱山」とも呼ばれます。完全を期すために、「mine」は作業ツリーのHEADバージョンを「stash」/「merge」/「pull」/「cherry-pick」し、リベースするブランチのバージョンを「rebase」することを意味します。

  • filename.ext.REMOTE.ext

これは、マージしたいリビジョンのファイルのバージョンです(通常のマージでは、MERGE_HEAD に対応します)。他の変更をマージしたいので、この状態/バージョンは「それら」とも呼ばれます。完全を期すために、「それら」とは、「stash」/「merge」/「pull」/「cherry-pick」のマージ/ブランチのバージョンを意味し、「rebase」はリベースするブランチのバージョンを意味します。

その後、コマンドTortoiseGit解決済みを実行し、リポジトリへの変更をコミットします(リベースまたはチェリーピッキング中に競合が発生した場合は、通常のコミットダイアログではなく、チェリーピック resp。rebase ダイアログを使用してコミットしてください!)。Resolveコマンドは実際には競合を解決しないことに注意してください。それはあなたの変更をコミットすることを可能にすることを決議して、ファイルのステータスをマークする「Gitの追加」を使用し、それが削除されfilename.ext.BASE.extfilename.ext.LOCAL.extそしてfilename.ext.REMOTE.extファイルを。

バイナリファイルと競合する場合、Gitはファイル自体をマージしようとしません。ローカルファイルは変更されないままです(最後に変更したとおりです)。使用競合を解決するためにTortoiseGitを...解決し、右側衝突ファイルをクリックして、のいずれかを選択し解決を(作業ツリーにあるファイルの現在のバージョンが使用されます)、「地雷」を使用して衝突を解決(HEADのファイルのバージョンが使用されます)、および'theirs'を使用して競合を解決します(マージされたリビジョン/ブランチのファイルのバージョンが使用されます)。そのコミットの後。

親フォルダーを右クリックし、TortoiseGit解決...を選択すると、複数のファイルに対して解決済みコマンドを使用できますこれにより、そのフォルダー内の競合するすべてのファイルをリストするダイアログが表示され、解決済みとしてマークするファイルを選択できます。

競合の解決ダイアログ

競合の解決ダイアログ

重要

Gitは(SVNとは異なり)競合するファイルのfilename.ext.BASE.extfilename.ext.LOCAL.extおよびfilename.ext.REMOTE.extファイルを自動的に作成しません。これらは、コマンド Edit Conflicts を使用するときにTortoiseGitによってオンデマンドでのみ作成されます。

重要

Git では(SVNとは異なり)競合を解決した後にコミットする必要があります。ただし、リベースまたはチェリーピッキング中に競合が発生した場合は、チェリーピックの応答を使用してください。通常のコミットダイアログではなく、コミット用のダイアログをリベースします!

特別な紛争事例

削除-変更の競合

特別な競合の場合は、削除と変更の競合です。ここで、あるブランチでファイルが削除され、別のブランチで同じファイルが変更されます。この競合を解決するために、ユーザーは変更されたバージョンを保持するか、作業ツリーからファイルを削除するかを決定する必要があります。

削除と変更の競合ダイアログを解決

削除と変更の競合ダイアログを解決

サブモジュールの競合

別の特別な競合ケースは、サブモジュールに関連する競合です。ここで、サブモジュールは2つのブランチで異なる(競合する)方法で変更されます。

サブモジュールの競合の解決ダイアログには、競合するサブモジュールのベース、ローカルおよびリモートコミット、およびコミットタイプ(巻き戻し、早送り、...)が表示されます。

サブモジュールの競合の解決ダイアログ

サブモジュールの競合の解決ダイアログ

初期化されていないサブモジュール

サブモジュールがまだ初期化されていない場合、サブモジュール競合の解決ダイアログにはコミットID(SHA-1)のみが表示されます。また、競合を自動的に解決することはできません。最初に、サブモジュールを適切なフォルダーに手動で複製する必要があります。次に、TortoiseGit または Git を使用して競合を解決できます(サブモジュールで適切なコミットをチェックアウトし、親作業ツリーをコミットします)。


パッチとプルリクエストの作成と適用

(このような)オープンソースプロジェクトでは、誰でも(メイン/パブリック)リポジトリへの読み取りアクセス権があり、誰でもプロジェクトに貢献できます。では、これらの貢献はどのように制御されますか?誰でもこの中央リポジトリに変更をコミットできれば、プロジェクトは永続的に不安定になり、おそらく永続的に壊れます。この状況では、変更は、書き込みアクセス権を持つ開発チームにパッチファイルまたはプルリクエストを送信することで管理されます。最初に変更を確認してから、メインリポジトリに送信するか、拒否して作成者に戻すことができます。

パッチファイルは、作業ツリーとベースリビジョンの違いを示す単純なUnified-Diffファイルです。

プルリクエストは、リポジトリから変更をプルするための別のリポジトリ所有者へのリクエストです。つまり、変更をプッシュできるパブリックリポジトリ(通常は特別なブランチ)にアクセスできる必要があります。

パッチシリアルの作成

まず、変更を加えてテストする必要があります。次に、親フォルダーでTortoiseGitコミット...を使用して変更をコミットし、適切なコミットメッセージを入力します。その後、TortoiseGitパッチシリアルの作成...を選択し、変更/コミットを含めるための正しいオプションを選択します。

パッチの作成ダイアログ

パッチの作成ダイアログ

ディレクトリは、パッチの出力ディレクトリです。パッチファイル名は、コミットサブジェクトによって作成されます。

以来点からパッチを作成します。...をクリックすると、refbrowse ダイアログが起動し、ブランチまたはタグを選択できます。

コミット数は、作成されるパッチの量に制限されます。

範囲は、範囲選択しているからにコミットするの。...をクリックしてログダイアログを起動し、コミットを選択できます。

作成起動後にメールを送信パッチが作成された後、メール送信ダイアログが表示されます(メールによるパッチの送信を参照してください)。

詳細については、git-format-patch(1)をご覧ください。

重要

ここで、Git は TortoiseSVN とは異なります: TortoiseSVN では、変更をコミットする代わりに直接パッチを作成し、その後コミットのパッチを作成します(gitでは、クローンしたプロジェクトの完全なローカルコピー/フォークがあります-コミットはローカルのみです)。コミットされていないがステージングされた変更を含むパッチを生成するには、HEAD 以降の統合された差分を保存をクリックします。

Gitでバージョン管理を行うための詳細情報の参照先については、読書ガイドを参照してください。

パッチをメールで送信する

上流の作者にパッチを送信するには、パッチファイルを選択して右クリックし、TortoiseGitSend Mail ...を選択します

パッチの送信ダイアログ

パッチの送信ダイアログ

最初に、受信者を入力する必要があります(Toおよび/またはCC)。

メールの種類(添付ファイルとしてパッチまたは1つのメールを結合)に応じて、メールの件名を入力する必要があります。

添付ファイルとしてパッチを適用すると、パッチがインライン化されるのではなく、添付ファイルとしてメールに追加されます。

1つのメールを結合すると、すべてのパッチが1 つのメールに追加されます。この場合、メールの件名を入力する必要があります。

単一のパッチファイルの適用

パッチファイルが作業ツリーに適用されます。これは、パッチの作成に使用されたのと同じフォルダレベルから実行する必要があります。これが何かわからない場合は、パッチファイルの最初の行を見てください。たとえば、作業中の最初のファイルがそうdoc/source/english/chapter1.xmlで、パッチファイルの最初の行がそうであるIndex: english/chapter1.xml場合、そのdoc/source/フォルダーにパッチを適用する必要があります。ただし、正しい作業ツリーにいる場合、間違ったフォルダーレベルを選択すると、TortoiseGit は正しいレベルに気付き、提案します。

パッチファイル(.patchまたは.diff拡張子)のコンテキストメニューから、TortoiseGit単一パッチのレビュー/適用...をクリックします。作業ツリーの場所を入力するように求められる場合があります。

リポジトリの選択ダイアログ

リポジトリの選択ダイアログ

作業ツリーが見つかった場合、TortoiseGitMerge が起動して差異を表示および適用します。

パッチシリアルの適用

パッチファイルが作業ツリーに適用されます。このために、パッチ(またはmbox)ファイルを作業ツリーのルートにコピーします。

そのフォルダー(またはすべてのマークされたパッチファイル)のコンテキストメニューから、TortoiseGitパッチシリアルの適用...をクリックします

パッチの適用ダイアログ

パッチの適用ダイアログ

挿入パッチを追加

Up選択したパッチを上に移動します。

選択したパッチを下に移動します。

削除選択したパッチを削除します。

適用パッチの適用を1つずつ開始します。

詳細については、git-am(1)をご覧ください。

プルリクエストを作成する

パッチ(またはパッチシリアル)を他の開発者に送信することとは別に、他の人に変更をリポジトリに統合するよう依頼する方法は2つあります。

最初:(パブリック)リポジトリに変更をプッシュした後、他の人にリポジトリのURLとブランチ名またはリビジョンIDを提供するだけです。例えば:git://example.com/repo.git BRANCHNAME

2番目:変更を(パブリック)リポジトリにプッシュした後、標準化された(非常に正式な)リクエストを作成して、変更をプルしてリポジトリに統合するように他の人に依頼できます。フォーマットプルリクエストは、すべてのコミットのリストで構成され、変更されたファイルに関する統計情報を提供するため、他の人が簡単に概要を確認できます。

変更をプッシュした後、進行状況ダイアログで[プル要求]を選択します。

プル要求ダイアログ

プル要求ダイアログ

  • 開始

これは、変更のベースとなるリビジョンである必要があります。

  • URL

リポジトリのパブリックURL。変更をプルするユーザーがアクセスできます。

  • 終わり

これは、コミットの終了のブランチ名またはリビジョンIDである必要があります。

[OK]をクリックすると、プルリクエストが作成されます。コピーして、変更を取得したい他の人に渡すだけです。

詳細については、git-request-pull(1)をご覧ください。


誰がどの行を変更しましたか?

変更された行だけでなく、ファイル内の特定の行を誰が正確に変更したかも知る必要がある場合があります。そのとき、注釈コマンドとも呼ばれる TortoiseGitBlame ...コマンドが役立ちます

このコマンドは、ファイル内のすべての行、作成者、および行が変更されたリビジョンをリストします。

ファイルのせい

デフォルトでは、非難ファイルは TortoiseGitBlame を使用して表示され、さまざまなリビジョンが強調表示されて読みやすくなります。

TortoiseGitBlame

カメGitBlame

TortoiseGit に含まれている TortoiseGitBlame。非表示情報列の行にマウスを移動すると、同じリビジョンのすべての行が暗い背景で表示されます。同じ作成者によって変更された他のリビジョンの行は、明るい背景で表示されます。ディスプレイを256色モードに設定している場合、カラーリングは明確に機能しない場合があります。

行(左の非表示情報列)を左クリックすると、同じリビジョンのすべての行が強調表示され、同じ作成者による他のリビジョンの行が明るい色で強調表示されます。この強調表示は粘着性があるため、強調表示を失うことなくマウスを移動できます。強調表示をオフにするには、そのリビジョンをもう一度クリックします。

マウスが非難情報列の上にあるときは常に、リビジョンコメント(ログメッセージ)がヒントボックスに表示されます。そのリビジョンのログメッセージをコピーする場合は、非難情報列を右クリックしたときに表示されるコンテキストメニューを使用します。

最も古い変更と最新の変更がどこにあるかを視覚的にわかりやすく表示する必要がある場合は、[表示] → [年齢ごとの色付け、連続]を選択します。次に、線の背景色の強度はその年齢に関連しています。これは、色のグラデーションを使用して、新しい行を黄色で、古い行を白で表示します。デフォルトの色は非常に薄いですが、TortoiseGitBlame 設定を使用して変更できます。

[表示]メニューもご覧ください。そこで、ホワイトスペース無視を切り替えたり、他のファイルから移動/コピーされた行の検出を切り替えたり、名前変更フォローしたりできます。

編集検索...を使用して、Blame レポート内を検索できます。これにより、リビジョン番号、作成者、およびファイル自体のコンテンツを検索できます。ログメッセージは検索に含まれません-ログダイアログを使用して検索する必要があります。

編集行へ移動...を使用して、特定の行番号にジャンプすることもできます。

マウスが非表示情報の列の上にあるとき、コンテキストメニューを使用して、リビジョンを比較し、マウスの下の行のコミットを参照として使用して履歴を調べることができます。コンテキストメニュー前のリビジョンを非表示にすると、同じファイルの非表示レポートが生成されますが、上限として前のリビジョンが使用されます。これにより、表示している行が最後に変更された直前のファイルの状態に関する非難レポートが得られます。コンテキストメニュー →[変更を表示]を選択すると、差分ビューアーが起動し、ファイルの参照リビジョンで何が変更されたかが表示されます。ただし、これらの2つのオプションは、ファイルの最初のコマンド以降にこの行が存在しない場合にのみ使用できることに注意してください。コンテキストメニュー表示するログを参照しているリビジョンから始まる、リビジョンログダイアログを表示します。

TortoiseBlame の設定には、TortoiseGitBlame タブのTortoiseGit設定...を使用してアクセスできます。TortoiseGitBlame設定を参照してください。

詳細については、git-blame(1)をご覧ください。


Git 作業ツリーのエクスポート

特定のリビジョン/コミットのスナップショットが必要な場合があります。たとえば、ソースの圧縮されたtarball を作成したり、Web サーバーにエクスポートしたりします。このため、TortoiseGit はTortoiseGitExport ...コマンドを提供します。

エクスポートダイアログ

エクスポートダイアログ

エクスポートのZipファイル zipファイル

現在のコミットがチェックアウトされました。

  • ブランチ

選択したブランチの最新のコミット。

  • タグ

選択したタグのコミット。

  • コミット

任意のコミット、...をクリックしてログダイアログを起動し、コミットを選択します。コミットハッシュ、またはなどのフレンドリコミット名を入力することもできますHEAD~4

詳細については、git-archive(1)をご覧ください。

単一ファイルのエクスポート

エクスポートダイアログでは、単一のファイルをエクスポートできません。

TortoiseGit で単一のファイルをエクスポートするには、リポジトリブラウザー(リポジトリブラウザーを参照)またはログダイアログ(ログダイアログを参照)を使用する必要があります。エクスポートするファイルをリポジトリブラウザーからエクスプローラーの目的の場所にドラッグするか、リポジトリブラウザーのコンテキストメニューを使用してファイルをエクスポートします。


バグ追跡システム/問題追跡システムとの統合

変更が特定のバグまたは問題IDに関連することは、ソフトウェア開発では非常に一般的です。バグ追跡システム(問題追跡システム)のユーザーは、Git で行った変更を問題追跡システムの特定の ID に関連付けたいと考えています。したがって、ほとんどの問題追跡ツールは、コミットが関連付けられているバグ ID を見つけるためにログメッセージを解析する事前コミットフックスクリプトを提供します。事前コミットフックスクリプトが正しく解析できるように、ユーザーがログメッセージを適切に書き込むことに依存しているため、これは多少エラーが発生しやすくなります。

TortoiseGit は、次の2つの方法でユーザーを支援できます。

  1. ユーザーがログメッセージを入力すると、コミットに関連付けられた問題番号を含む明確に定義された行を自動的に追加できます。これにより、バグ追跡ツールが正しく解析できない方法でユーザーが問題番号を入力するリスクが軽減されます。

または、TortoiseGit は、入力されたログメッセージの問題トラッカーが認識する部分を強調表示できます。これにより、ユーザーはログメッセージを正しく解析できることがわかります。

  1. ユーザーがログメッセージを参照すると、TortoiseGit はログメッセージ内の各バグIDからリンクを作成し、言及された問題へのブラウザーを起動します。

ログメッセージへの問題番号の追加

TortoiseGit には、選択したバグ追跡ツールを統合できます。これを行うには、で始まる設定を定義する必要がありますbugtraq.。これらの設定は、TortoiseGit 設定ダイアログを使用して編集できます。Config

TortoiseGit と課題追跡を統合する方法は2つあります。1つは単純な文字列に基づいており、もう1つは正規表現に基づいています。両方のアプローチで使用される構成は次のとおりです。

  • bugtraq.url

この構成をバグ追跡ツールのURLに設定します。適切にURIエンコードする必要があり、を含む必要があります%BUGID%%BUGID%入力した発行番号に置き換えられます。これにより、TortoiseGit はログダイアログにリンクを表示できるため、リビジョンログを見ているときにバグ追跡ツールに直接ジャンプできます。この構成を提供する必要はありませんが、TortoiseGit は問題番号のみを表示し、それへのリンクは表示しません。例:TortoiseGit プロジェクトが使用しているhttps://tortoisegit.org/issue/%BUGID%

  • bugtraq.warnifnoissue

true課題番号のテキストフィールドが空であるためにTortoiseGitに警告する場合は、これをに設定します。有効な値はtrue/falseです。定義されていない場合は、false想定されます。

テキストボックスの問題番号

単純なアプローチでは、TortoiseGit はユーザーにバグIDを入力できる別の入力フィールドを表示します。次に、ユーザーが入力したログメッセージに別の行が追加/追加されます。

  • bugtraq.message

この構成は、入力フィールドモードでバグ追跡システムをアクティブにします。この構成が設定されている場合、TortoiseGit は、変更をコミットするときに問題番号を入力するように求めます。ログメッセージの最後に行を追加するために使用されます。を含める必要があり%BUGID%、コミット時に発行番号に置き換えられます。これにより、コミットログに常に一貫した形式の問題番号への参照が含まれ、バグ追跡ツールで解析して問題番号を特定のコミットに関連付けることができます。例としてを使用できますがIssue : %BUGID%、これはツールによって異なります。

  • bugtraq.append

この構成は、ログIDをログメッセージの末尾に追加する(true)か、ログメッセージの先頭に挿入する(false)かを定義します。有効な値はtrue/falseです。定義されていない場合は true、既存のプロジェクトが中断しないように想定されています。

  • bugtraq.label

このテキストは、TortoiseGit がコミットダイアログで表示し、問題番号を入力する編集ボックスにラベルを付けます。設定されていない場合Bug-ID / Issue-Nr:は、表示されます。ただし、ウィンドウはこのラベルに合わせてサイズ変更されないため、ラベルのサイズは20〜25文字未満にしてください。

  • bugtraq.number

trueissue-numberテキストフィールドでは、数字のみに設定できます。例外はコンマなので、複数の数字をコンマで区切ることができます。有効な値はtrue/falseです。定義されていない場合は、true 想定されます。

正規表現を使用した発行番号

正規表現を使用したアプローチでは、TortoiseGit は個別の入力フィールドを表示しませんが、ユーザーが入力するログメッセージの問題トラッカーによって認識される部分をマークします。これは、ユーザーがログメッセージを書き込むときに行われます。これはまた、バグIDがログメッセージ内のどこにでも存在できることを意味します!この方法ははるかに柔軟で、TortoiseGit プロジェクト自体が使用する方法です。

  • bugtraq.logregex

この構成により、正規表現モードでバグ追跡システムがアクティブになります。単一の正規表現、または改行で区切られた2つの正規表現が含まれます。2つの式が設定されている場合、最初の式は、バグIDを含む式を見つけるための事前フィルターとして使用されます。2番目の式は、最初の正規表現の結果からベアバグIDを抽出します。これにより、必要に応じてバグIDと自然言語表現のリストを使用できます。たとえば、いくつかのバグを修正し、次のような文字列を含めることができます。「この変更により、#23、#24、および#25の問題が解決します」ログメッセージ内の上記の式で使用されるバグIDをキャッチしたい場合は、TortoiseGit のプロジェクトで使用されるものであり、以下の正規表現の文字列を、使用することができます[Ii]ssues?:?(\s*(,|and)?\s*#\d+)+し、(\d+)最初の式は、周囲のログメッセージから「issue#23、#24および#25」を選択します。2番目の正規表現は、最初の正規表現の出力から単純な10進数を抽出するため、バグIDとして使用するために「23」、「24」、および「25」を返します。最初の正規表現を少し分解すると、大文字で始まる可能性のある「issue」という単語で始まる必要があります。これには、オプションで「s」(複数の問題)とオプションでコロンが続きます。これには、先頭に0個以上の空白、オプションのカンマまたは「and」、およびオプションのスペースが含まれる1つ以上のグループが続きます。最後に、必須の「#」と必須の10進数があります。1つの式のみが設定されている場合、正規表現文字列のグループ内でベアバグIDが一致する必要があります。例:[Ii]ssue(?:s)? #?(\d+)このメソッドは、tracなどのいくつかの課題トラッカーで必要ですが、正規表現を作成するのは困難です。問題追跡ツールのドキュメントで指示されている場合にのみ、この方法を使用することをお勧めします。正規表現に慣れていない場合は、https://en.wikipedia.org/wiki/Regular_expressionの概要と、http://www.regular-expressions.info/のオンラインドキュメントとチュートリアルをご覧ください。

bugtraq:messagebugtraq:logregexプロパティの両方が設定されている場合logregexは、優先されます。

Tips

ログメッセージを解析するプリコミットフックを備えた課題トラッカーがない場合でも、これを使用して、ログメッセージに記載されている課題をリンクに変換できます。

また、リンクが不要な場合でも、問題番号はログダイアログに個別の列として表示されるため、特定の問題に関連する変更を簡単に見つけることができます。

階層Git構成に基づいた課題トラッカープロバイダーの設定

これは、特定のディレクトリパスではなくプロジェクトに課題追跡プラグインを関連付ける階層的なgit構成です。このような設定はより移植性があります。設定を展開するには、プロジェクトレベルに設定してコミットし.tgitconfigます。

  • bugtraq.provideruuid

これは、32ビットの課題追跡プラグインのGUIDです。

  • bugtraq.provideruuid64

これは、64ビットの課題追跡プラグインのGUIDです。

  • bugtraq.providerparams

これは、課題追跡プラグインのパラメーター文字列です。

この課題追跡システムの統合は、TortoiseGit に限定されません。他のクライアント(TortoiseSVNなど)で使用できます。詳細については、TortoiseGit ソースリポジトリの完全なIssue Tracker Integration Specificationを参照してください。(TortoiseGitは無料です!では、リポジトリにアクセスする方法について説明しています)。

課題トラッカーから情報を取得する

前のセクションでは、ログメッセージへの問題情報の追加について説明しました。しかし、問題追跡システムから情報を取得する必要がある場合はどうでしょうか?コミットダイアログには、トラッカーと通信できる外部プログラムを統合できる Windows COM インターフェイスがあります。通常、トラッカーにクエリを実行して、割り当てられている未解決の問題のリストを取得し、このコミットで対処されている問題を選択できるようにします。

もちろん、このようなインターフェイスはシステムに非常に固有のものであるため、この部分は提供できません。また、このようなプログラムの作成方法については、このマニュアルの範囲外です。インターフェイス定義とサンプルプログラムはcontribTortoiseGitリポジトリのフォルダーから取得できます。(TortoiseGitは無料です!では、リポジトリにアクセスする方法について説明しています)。APIの概要は、付録BのIBugTraqProviderインターフェースにも記載されています。C#の別の(動作する)プラグイン例は、Google Code課題追跡と対話するために必要なCOMインターフェースを実装するGurtleです。

説明のために、システム管理者がインストールした課題追跡プラグインを提供し、TortoiseGit の設定ダイアログでプラグインを使用するために作業ツリーの一部を設定したとします。プラグインが割り当てられた作業ツリーからコミットダイアログを開くと、ダイアログの上部に新しいボタンが表示されます。

課題トラッカークエリダイアログの例

課題トラッカークエリダイアログの例

この例では、1つ以上の未解決の問題を選択できます。プラグインは、ログメッセージに追加する特別な形式のテキストを生成できます。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away