初心者向けTortoiseGit使い方ガイド:バージョン管理を始めよう
ソフトウェア開発やドキュメント作成など、一人または複数人でプロジェクトを進める際に、バージョン管理システムは不可欠なツールです。いつ、誰が、どのような変更を行ったのかを記録し、必要に応じて過去の状態に戻したり、複数の変更を統合したりすることができます。
Gitは、現在最も広く利用されている分散型バージョン管理システムです。そして、TortoiseGitは、GitをWindows上で直感的で使いやすいGUI(グラフィカルユーザーインターフェース)で操作できるようにするツールです。コマンドライン操作が苦手な初心者でも、TortoiseGitを使えばGitの強力な機能を視覚的に扱うことができます。
このガイドでは、TortoiseGitを初めて使う方のために、インストールから基本的な日常操作、そしてブランチの操作まで、詳細な手順を追って解説します。これを読めば、あなたも今日からバージョン管理の恩恵を受けられるようになるでしょう。
1. はじめに:バージョン管理とTortoiseGitとは
1.1. バージョン管理システムが必要な理由
あなたは、書類を作成する際に「最終版_本当に最後.docx」「最終版_山田さん確認済み_20231027.docx」のようにファイル名を付けてバージョンを管理した経験はありませんか?これは簡易的なバージョン管理ですが、すぐに混乱してどれが最新か分からなくなってしまいます。
本格的なバージョン管理システムを使うと、このような問題が解決します。
- 変更履歴の記録: ファイルの追加、変更、削除といった全ての操作が記録されます。いつ、誰が、何を変更したのかが明確になります。
- 過去の状態への復旧: 必要に応じて、プロジェクト全体を任意の過去の状態に戻すことができます。間違った変更を簡単に取り消せます。
- 複数人での共同作業: 各自が独立して作業を進め、後からそれらの変更を安全に統合することができます。他の人の変更を上書きしてしまう心配が減ります。
- 変更内容の比較: ある時点と別の時点でのファイルの違い(差分)を簡単に確認できます。
- 実験的な変更の管理(ブランチ): プロジェクトのメインの流れとは別に、新しい機能の開発や実験的な変更を独立した「ブランチ」で行うことができます。問題がなければメインに取り込み、失敗してもメインに影響はありません。
これらのメリットにより、開発効率が向上し、ミスのリスクを減らすことができます。
1.2. Gitとは
Gitは、Linus Torvalds氏(Linuxオペレーティングシステムの生みの親)によって開発された、分散型バージョン管理システムです。分散型であるとは、プロジェクトの履歴が中央のサーバーだけでなく、参加者それぞれのローカル環境にも完全に複製されるということです。これにより、オフラインでの作業が可能になったり、中央サーバーに障害が発生してもローカルの履歴を使って復旧できたりといったメリットがあります。
Gitは、その柔軟性、高速性、そして強力なブランチ機能により、現在、世界中で最も広く利用されているバージョン管理システムとなりました。GitHub、GitLab、Bitbucketといった主要なコードホスティングサービスもGitをベースとしています。
1.3. TortoiseGitとは
Gitは本来、コマンドライン(ターミナル)からgit add
, git commit
, git push
といったコマンドを入力して操作します。しかし、コマンドに慣れていない初心者にとっては敷居が高く感じられるかもしれません。
TortoiseGitは、Windowsのエクスプローラーに統合される形で動作する、GitのGUIクライアントです。ファイルやフォルダを右クリックするだけで、Gitの様々な操作をメニューから選択して実行できます。アイコンオーバーレイによってファイルの状態(変更があったか、コミット済みかなど)が一目で分かるようになります。
TortoiseGitを使うことで、コマンドを覚えることなく、視覚的で直感的にGitの操作を行うことができます。これは特に、Gitの概念を学び始めたばかりの初心者にとって大きな助けとなります。
2. TortoiseGitのインストールとセットアップ
TortoiseGitを使うには、まずWindowsにGit自体がインストールされている必要があります。その後、TortoiseGit本体と必要であれば日本語言語パックをインストールします。
2.1. Git for Windowsのインストール
TortoiseGitはGitのGUIクライアントであり、Git本体ではありません。したがって、まずGit for Windowsをインストールする必要があります。
- ダウンロード: Git for Windowsの公式サイト(https://gitforwindows.org/)にアクセスします。
- インストーラーの実行: サイトのトップページにある「Download」ボタンをクリックし、お使いのWindowsのバージョン(32bitまたは64bit)に合ったインストーラーをダウンロードします。ダウンロードした
Git-x.y.z-64-bit.exe
(x.y.zはバージョン番号)のようなファイルを実行します。 - インストールオプションの選択: インストーラーの指示に従って進めます。いくつかの設定画面が表示されますが、特別な理由がなければデフォルト設定のままで進めても構いません。特に以下の点に注意してください。
- Select Components: 「Git Bash Here」「Git GUI Here」などがチェックされていることを確認します(TortoiseGitを使う場合、これらを直接使う機会は少ないかもしれませんが、Git本体に含まれる便利なツールです)。「Associate .git* configuration files with the default text editor」などもチェックしておくと便利です。
- Choosing the default editor used by Git: Gitがコミットメッセージなどを編集する際に使用するエディタを選択します。Nano、Vim、Notepad++などから選べます。普段使い慣れているエディタがあればそれを選択すると良いでしょう。特にこだわりがなければ、デフォルトのままでも問題ありません。
- Adjusting your PATH environment: ここが最も重要です。「Git from the command line and also from 3rd-party software」を選択することを強く推奨します。これにより、コマンドプロンプトやPowerShell、そしてTortoiseGitのようなサードパーティ製ツールからGitコマンドが実行できるようになります。
- Choosing the SSH executable: GitがSSH接続を行う際に使用するクライアントを選択します。OpenSSHを使うか、PuTTYを使うかを選べます。TortoiseGitはデフォルトでPuTTYを推奨しており、後述のPuTTYgenを使ったSSHキー管理が容易なため、「Use bundled OpenSSH」ではなく「Use external OpenSSH」や、TortoiseGitと一緒にインストールされるPuTTY/PuTTYgenを使うことを選択するのが一般的です。ここでは、PuTTYがインストールされていればそちらを選択するか、Git付属のOpenSSHを選択しておき、後でTortoiseGitの設定でPuTTYを指定することも可能です。最初はデフォルトのOpenSSHで始めても良いでしょう。
- Choosing the HTTPS transport backend: HTTPS接続を行う際のライブラリを選択します。OpenSSLを使うか、Windowsの証明書ストアを使うかを選べます。「Use the OpenSSL library」が一般的です。
- Configuring the line ending conversions: WindowsとLinux/macOSでは改行コードの扱いが異なります。複数人で開発する場合、改行コードの自動変換を設定しておくとトラブルを防げます。「Checkout Windows-style, commit Unix-style line endings」を選択するのが一般的です。これは、ローカルの作業コピーではWindows式のCRLFを使い、コミット時にはGitがUnix式のLFに自動変換するという設定です。
- Configuring the terminal emulator to use with Git Bash: Git Bashで使うターミナルエミュレータを選択します。デフォルトのMinTTYか、Windowsのコンソールウィンドウかを選べます。MinTTYの方が高機能でおすすめです。
- Configuring extra options: ファイルシステムのキャッシュを有効にするかなどを設定します。デフォルトで問題ありません。
- Configuring credential helper: リモートリポジトリに接続する際の認証情報を記憶させる設定です。「Git Credential Manager」を使う設定が推奨されます。これにより、ユーザー名やパスワード、あるいは個人アクセストークンを一度入力すれば、しばらく再入力を求められなくなります。
- インストール完了: インストールが完了したら、「Finish」をクリックしてインストーラーを閉じます。コマンドプロンプトを開き、
git --version
と入力してGitのバージョン情報が表示されれば、Git本体のインストールは成功です。
2.2. TortoiseGit本体のインストール
次に、TortoiseGit本体をインストールします。
- ダウンロード: TortoiseGitの公式サイト(https://tortoisegit.org/)にアクセスします。
- インストーラーの実行: サイトのトップページにある「Download」ボタンをクリックし、お使いのWindowsとGit for Windowsに合わせたバージョン(32bitまたは64bit)のインストーラーをダウンロードします。ダウンロードした
TortoiseGit-x.y.z-64bit.msi
のようなファイルを実行します。 - インストールオプションの選択: インストーラーの指示に従って進めます。
- Custom Setup: インストールするコンポーネントを選択します。通常はすべてインストールで問題ありません。「TortoiseGit」本体、「Language Packs」などが含まれます。後で日本語化したい場合は、「Language Packs」を必ず含めてください。
- PuTTYgen, Pageant, Plink: SSH接続を行う場合に利用するPuTTY系のツールが含まれます。SSH接続を利用する予定がある場合は、これらのツールもインストールしておくと便利です(Git for WindowsでOpenSSHを選択した場合でも、TortoiseGitの設定でPuTTY/Pageantを使用するように変更できます)。
- Git.exeの場所指定: TortoiseGitのインストール中に、Git for Windowsがインストールされた
git.exe
の場所を尋ねられることがあります。Git for Windowsをデフォルト設定でインストールしていれば、自動的に検出されることが多いですが、もし尋ねられたらGitをインストールしたフォルダ内のbin
フォルダ(例:C:\Program Files\Git\bin
)にあるgit.exe
を指定します。 - インストール完了: インストールが完了したら、コンピュータの再起動を求められることがあります。再起動することで、エクスプローラーの右クリックメニューにTortoiseGitの項目が追加され、アイコンオーバーレイが表示されるようになります。
2.3. 日本語言語パックのインストール (任意)
TortoiseGitのインターフェースを日本語化したい場合は、言語パックをインストールします。
- ダウンロード: TortoiseGitの公式サイトのダウンロードページ(https://tortoisegit.org/download/)から、インストールしたTortoiseGitのバージョンと同じバージョンの日本語言語パック(Language Pack -> Japanese)をダウンロードします。
TortoiseGit-LanguagePack-x.y.z-64bit-ja.msi
のようなファイルです。 - インストーラーの実行: ダウンロードした言語パックのインストーラーを実行します。特別な設定はありません。
- TortoiseGitの設定: インストール後、エクスプローラーのデスクトップ上の何もない場所を右クリックし、「TortoiseGit(T)」->「Settings(S)」を選択します。
- 設定ダイアログの左側ツリーメニューで「General」を選択します。
- 「Language」のドロップダウンリストから「日本語 [ja]」を選択し、「OK」をクリックします。
- TortoiseGitのインターフェースが日本語に切り替わります。もし切り替わらない場合は、PCを再起動してみてください。
2.4. 初回起動時の設定(ユーザー名とメールアドレス)
Gitでは、コミットを行う際に誰がその変更を行ったかを記録します。そのため、ユーザー名とメールアドレスを設定しておく必要があります。
- エクスプローラーのデスクトップ上の何もない場所を右クリックし、「TortoiseGit」->「Settings」を選択します。
- 設定ダイアログの左側ツリーメニューで「Git」->「Config」を選択します。
- 「Global」タブが選択されていることを確認します(これは、このコンピュータ上の全てのGitリポジトリに適用される設定です)。
- 「Name」欄にあなたの名前を入力します(例:
Taro Yamada
)。 - 「Email」欄にあなたのメールアドレスを入力します(例:
[email protected]
)。 - 「OK」をクリックして設定を保存します。
この設定は、Gitコマンドでgit config --global user.name "Your Name"
やgit config --global user.email "[email protected]"
を実行するのと同じです。
2.5. SSHクライアントの設定 (任意)
GitHubなどのリモートリポジトリにSSHプロトコルで接続する場合、SSHクライアントと鍵の設定が必要になります。HTTPS接続の場合は通常不要です。
- 鍵ペアの生成: デスクトップ上の何もない場所を右クリックし、「TortoiseGit」->「PuTTYgen」を選択します。
- PuTTY Key Generatorが起動します。「Generate」ボタンをクリックし、表示された領域内でマウスカーソルをランダムに動かして鍵を生成します。
- 鍵が生成されたら、「Key comment」に識別しやすい名前(例: あなたのメールアドレス)を入力します。「Key passphrase」と「Confirm passphrase」には、鍵を使用する際に求められるパスワード(パスフレーズ)を入力します。パスフレーズを設定しておくとセキュリティが高まりますが、毎回入力を求められるようになります。
- 「Save public key」をクリックして公開鍵をファイルに保存します(例:
id_rsa.pub
)。 - 「Save private key」をクリックして秘密鍵をファイルに保存します(例:
id_rsa.ppk
)。秘密鍵は厳重に管理してください。 - 公開鍵のリモートサービスへの登録: 生成された公開鍵(PuTTY Key Generatorウィンドウの上部に表示されている
ssh-rsa AAAA...
で始まる文字列)をコピーし、GitHub、GitLab、BitbucketなどのリモートリポジトリホスティングサービスのSSH設定ページに登録します。 - TortoiseGitの設定: デスクトップ上の何もない場所を右クリックし、「TortoiseGit」->「Settings」を選択します。
- 設定ダイアログの左側ツリーメニューで「Git」->「Remote」を選択します。
- SSHクライアントとして「PuTTY/Plink/TortoiseGitPlink」が選択されていることを確認します。通常はデフォルトで選択されています。
- SSHキーファイルとして、先ほど保存した秘密鍵ファイル(
.ppk
ファイル)のパスを指定します。 - Pageantの使用: PuTTY系のツールをインストールした場合、Pageantというツールを使うと、一度秘密鍵とパスフレーズをPageantに読み込ませておけば、PCを再起動するまでパスフレーズの入力を省略できます。Pageantはスタートアップに登録しておくと便利です。
HTTPS接続の場合は、最初の接続時にユーザー名とパスワード(またはパーソナルアクセストークン)の入力を求められ、Credential Managerが記憶してくれます。初心者にはHTTPSの方が手軽かもしれません。ただし、大きなファイルを扱う場合や大量の操作を行う場合はSSHの方が安定していることがあります。
3. 基本的なGit操作の準備
バージョン管理を始めるには、まず「リポジトリ」が必要です。リポジトリとは、プロジェクトのファイルやフォルダ、そしてその全ての変更履歴が格納される場所です。
3.1. ローカルリポジトリの作成(新規プロジェクトの場合)
これから新しくバージョン管理を始めたいフォルダがある場合、そのフォルダをGitリポジトリとして初期化します。
- バージョン管理したいプロジェクトのフォルダ(例:
MyProject
)をエクスプローラーで開きます。 - そのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Git Create repository here…(ここにリポジトリを作成)…」を選択します。
- 確認ダイアログが表示されます。「Make as bare repository(bareリポジトリとして作成)」というオプションは通常チェックしません。これはリモートリポジトリ用です。ローカルで作業する場合はチェックを外したまま、「OK」をクリックします。
- フォルダ内に隠しフォルダ
.git
が作成されます。これで、このフォルダはGitリポジトリとして初期化されました。エクスプローラーで隠しファイルを表示する設定にしていないと.git
フォルダは見えません。 - フォルダ内のファイルやフォルダのアイコンに、緑色のチェックマーク(未変更の状態を示すアイコン)が表示されるようになります。
3.2. 既存のリポジトリのクローン(リモートからコピーする場合)
GitHubなどで公開されている既存のプロジェクトや、チームメンバーが作成したリポジトリのコピーをローカルに取得する場合、「クローン」という操作を行います。
- プロジェクトを配置したい親フォルダ(例:
Documents
)をエクスプローラーで開きます。 - そのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Git Clone(クローン)…」を選択します。
- クローンダイアログが表示されます。
- URL(U): クローンしたいリモートリポジトリのURLを入力します。GitHubの場合、リポジトリページの「Code」ボタンをクリックすると表示されるHTTPSまたはSSHのURLをコピーして貼り付けます(例:
https://github.com/user/repo.git
または[email protected]:user/repo.git
)。 - Directory(D): リポジトリをクローンするローカルのフォルダパスを指定します。デフォルトではURLの最後の部分(リポジトリ名)がフォルダ名として自動入力されます。必要に応じて変更できます。
- Branch(B): クローンするブランチを選択します。通常はデフォルトのまま(mainまたはmasterブランチ)で構いません。
- Depth(P): クローンするコミット履歴の深さを制限できます。通常は制限なし(全履歴)で構いません。
- Recurse Submodules(S): リポジトリがサブモジュールを含んでいる場合に、サブモジュールも同時にクローンするかどうかを指定します。必要な場合はチェックを入れます。
- URL(U): クローンしたいリモートリポジトリのURLを入力します。GitHubの場合、リポジトリページの「Code」ボタンをクリックすると表示されるHTTPSまたはSSHのURLをコピーして貼り付けます(例:
- 「OK」をクリックします。
- 認証を求められた場合は、ユーザー名とパスワード(またはトークン)、あるいはSSHパスフレーズを入力します。
- リポジトリのクローンが開始され、完了すると指定したフォルダにファイルがダウンロードされます。フォルダ内のファイルやフォルダのアイコンに、緑色のチェックマークが表示されます。
これで、リモートリポジトリの最新の状態があなたのローカル環境にコピーされ、作業を開始できるようになります。
3.3. 作業コピーとリポジトリの関係
Gitでは、あなたが実際にファイルを編集する場所を「作業コピー (Working Copy)」または「作業ツリー (Working Tree)」と呼びます。これはエクスプローラーで見えている普通のファイルやフォルダのことです。
一方、.git
フォルダ内に格納されているのが「ローカルリポジトリ (Local Repository)」です。ここには、全てのコミット履歴やブランチの情報などが保存されています。
あなたがファイルを編集しても、その変更はすぐにローカルリポジトリに記録されるわけではありません。変更をリポジトリに記録する操作を「コミット (Commit)」と呼びます。
コミットするまでの流れは以下のようになります。
- 作業コピーでファイルを編集: ファイルの内容を変更したり、新しいファイルを作成したり、不要なファイルを削除したりします。この時点では、変更はまだローカルリポジトリに記録されていません。
- 変更をステージングエリアに追加 (Add): 次にコミットしたい変更(どのファイルをコミットに含めるか)を選択し、「ステージングエリア (Staging Area)」または「インデックス (Index)」と呼ばれる一時的な領域に追加します。これは「この変更を次のコミットに含めるぞ」とGitに伝えるステップです。
- ステージングエリアの変更をコミット (Commit): ステージングエリアに追加された変更を、ローカルリポジトリに恒久的な記録として保存します。コミットには、その変更内容を説明する「コミットメッセージ」を必ず付けます。これにより、後から履歴を見たときに、そのコミットで何が行われたのかが分かります。
このステージングエリアという仕組みがあることで、「行った全ての変更を一度にコミットする」のではなく、「関連する変更だけをまとめてコミットする」といった、よりきめ細かいバージョン管理が可能になります。
4. 日常的なGit操作
ここでは、TortoiseGitを使って日常的に行う基本的なGit操作について、ステップバイステップで解説します。
4.1. ステータスの確認 (Git Status)
現在、作業コピーのファイルがどのような状態にあるかを確認することは、Git操作の基本です。TortoiseGitでは、エクスプローラーのアイコンオーバーレイで状態が視覚的に分かりますが、詳細な状態は「Git Status」ダイアログで確認できます。
- アイコンオーバーレイ:
- 緑色のチェックマーク: 未変更(最新のコミットと同じ状態)
- 赤いエクスクラメーションマーク(!): 変更あり
- 青いプラスマーク(+): 新規ファイル
- 黄色の疑問符(?): 未追跡ファイル(Gitにまだ管理されていないファイル)
- 赤いマイナスマーク(-): ファイルが削除された
- 紫色の矢印: 移動またはリネームされた
- 灰色の丸い矢印: コミットは済んだが、リモートにまだプッシュされていない
- 黄色い鍵マーク: ロックされている(Subversionなど他のバージョン管理システムの名残でGitではあまり使われません)
- ステータスダイアログで確認: リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Git Status(ステータス)…」を選択します。
- ダイアログには、変更されたファイル、新規ファイル、削除されたファイルなどがリストアップされます。
- 「Unversioned files(バージョン管理外ファイル)」のリストには、新しく作成したがまだGitに追跡されていないファイルが表示されます。
- 「Modified(変更されたファイル)」のリストには、内容が変更されたファイルが表示されます。
- 「Staged files(ステージされたファイル)」のリストには、次にコミットに含めるためにステージングエリアに追加されたファイルが表示されます。
作業を開始する前やコミットする前には、このステータスを確認する癖をつけましょう。
4.2. ファイルの追加 (Git Add)
新しく作成したファイルや、変更したファイルをコミットに含めるためには、まずそれらをステージングエリアに追加する必要があります。これは「Git Add」操作で行います。
- リポジトリのフォルダ内の追加または変更したファイルを右クリックします。複数のファイルを選択することも可能です。
- コンテキストメニューから「TortoiseGit(T)」->「Add(追加)…」を選択します。
- 「Add」ダイアログが表示され、選択したファイルがリストアップされます。追加したいファイルにチェックが入っていることを確認します。
- 「OK」をクリックします。
- ファイルがステージングエリアに追加され、アイコンオーバーレイが青いプラスマーク(新規ファイル)または赤いエクスクラメーションマーク(変更済みファイルがステージされた状態)に変わります。
フォルダ内の未追跡のファイルや変更されたファイルをまとめて追加したい場合は、リポジトリのフォルダ自体を右クリックし、「TortoiseGit」->「Add…」を選択すると、そのフォルダ以下の全てのファイルがリストアップされます。必要なファイルにチェックを入れて追加できます。
4.3. 変更のコミット (Git Commit)
ステージングエリアに追加された変更を、ローカルリポジトリに記録(コミット)します。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Git Commit -> “master”…(コミット)…」(”master”は現在のブランチ名)を選択します。
- 「Commit」ダイアログが表示されます。
- 上部には、コミットメッセージを入力するテキストエリアがあります。
- 下部には、「Changes to be committed(コミットされる変更)」と「Changes not staged for commit(ステージされていない変更)」のリストが表示されます。ここで、ステージングエリアに入っているファイル(コミットされる変更)と、まだステージしていない変更(次にコミットしたい場合はAddする必要がある)を確認できます。
- デフォルトでは、ステージングエリアのファイルのみがコミット対象になります。もしステージングしていない変更もまとめてコミットしたい場合は、「Include local modifications not added to index(インデックスに追加されていないローカルの変更を含める)」にチェックを入れることもできますが、最初は明示的にAddしてからコミットする方が混乱しにくいでしょう。
- コミットメッセージの入力: コミットメッセージは、そのコミットでどのような変更を行ったかを簡潔かつ分かりやすく記述する非常に重要な情報です。
- 一行目に、変更の要約(50文字以内が目安)を書きます。
- 二行目は空行にします。
- 三行目以降に、変更の詳細な説明や理由などを記述します。
- 例えば、「feat: ログイン機能を追加」「fix: レスポンシブデザインの崩れを修正」「refactor: コードの整形」のように、変更の種類を示すプレフィックスを付けるのが一般的な慣習です。
- コミットメッセージを入力したら、「Commit(コミット)」ボタンをクリックします。
- ステージングエリアの変更がローカルリポジトリに記録され、新しいコミットが作成されます。アイコンオーバーレイは緑色のチェックマークに戻ります。
もし「Commit & Push(コミットとプッシュ)」ボタンがある場合、それはコミットと同時にリモートリポジトリにプッシュする機能です。最初は分けて操作する方が流れを理解しやすいでしょう。
4.4. ローカルリポジトリの確認 (Git Log)
これまでのコミット履歴を確認することができます。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Show Log(ログを表示)…」を選択します。
- 「Log Messages」ウィンドウが表示されます。
- 上部にコミット履歴が一覧で表示されます。各行には、コミットハッシュ(コミットを一意に識別するID)、作者、日付、コミットメッセージの最初の行が表示されます。
- 左側には、ブランチやタグの位置がアイコンで表示されます(例:
HEAD
,master
,origin/master
など)。 - リストで任意のコミットを選択すると、下部にそのコミットの詳細情報(変更されたファイルリスト、完全なコミットメッセージ、差分など)が表示されます。
- 左側のグラフビューでは、コミットの親子関係やブランチの分岐・マージが視覚的に表示されます。これにより、プロジェクトの歴史の流れを把握しやすくなります。
- 特定のコミットを右クリックすると、そのコミットの時点に戻る、そのコミット以降の変更を取り消す、ブランチを作成するといった様々な操作が可能です。
4.5. リモートリポジトリとの連携
ローカルリポジトリで行ったコミットは、まだリモートリポジトリ(GitHubなど)には反映されていません。また、他の人がリモートリポジトリにプッシュした変更は、あなたのローカルリポジトリにはまだ反映されていません。これらの同期を行うのが、フェッチ、プル、プッシュといった操作です。
4.5.1. プッシュ (Git Push)
ローカルリポジトリで行ったコミットを、リモートリポジトリにアップロードします。
- ローカルで新しいコミットを作成した後、リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Push(プッシュ)…」を選択します。
- 「Push」ダイアログが表示されます。
- Local(ローカル): プッシュしたいローカルのブランチを選択します(通常は現在のブランチが選択されています)。
- Remote(リモート): プッシュ先のリモートリポジトリを選択します(通常は
origin
という名前で、クローン元のアドレスが登録されています)。 - Remote Branch(リモートブランチ): プッシュ先のブランチを選択します。ローカルブランチと同じ名前のリモートブランチにプッシュするのが一般的です。
- 初回プッシュ時など、ローカルブランチに対応するリモートブランチが存在しない場合は、「Track remote branch(リモートブランチを追跡)」のオプションが表示されることがあります。これにチェックを入れると、ローカルブランチが指定したリモートブランチを追跡するようになり、以降のプッシュやプルが簡単になります。
- 設定を確認し、「OK」をクリックします。
- 認証を求められた場合は入力します。
- ローカルのコミットがリモートリポジトリにアップロードされます。成功すると、リモートリポジトリ(GitHubなどのウェブサイト)であなたの行った変更が確認できるようになります。
プッシュを行う前に、他の人がリモートにプッシュした変更がないかプル(後述)で確認するのが良い習慣です。もしリモートに新しい変更がある場合、プッシュが拒否されることがあります。
4.5.2. フェッチ (Git Fetch)
リモートリポジトリの最新情報を取得しますが、ローカルの作業コピーやブランチには反映しません。リモートにどのような変更があったかを確認したい場合に利用します。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Fetch(フェッチ)…」を選択します。
- 「Fetch」ダイアログが表示されます。
- Remote(リモート): 情報を取得したいリモートリポジトリを選択します(通常は
origin
)。
- Remote(リモート): 情報を取得したいリモートリポジトリを選択します(通常は
- 「OK」をクリックします。
- リモートリポジトリの最新の情報(新しいコミットやブランチのポインタなど)が取得され、ローカルリポジトリ内の「リモート追跡ブランチ」(例:
origin/master
)が更新されます。あなたの作業コピーやローカルブランチ(例:master
)は変更されません。 - ログを表示すると、
origin/master
などのリモート追跡ブランチが、ローカルブランチの先頭より先に進んでいることが確認できます。これが、リモートに新しい変更があることを示しています。
フェッチは、リモートの状況を確認するための安全な操作です。
4.5.3. プル (Git Pull)
リモートリポジトリの最新情報を取得し、それをローカルの現在のブランチにマージまたはリベースすることで反映します。フェッチとマージ(またはリベース)を組み合わせた操作です。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Pull(プル)…」を選択します。
- 「Pull」ダイアログが表示されます。
- Remote(リモート): プルしたいリモートリポジトリを選択します(通常は
origin
)。 - Remote Branch(リモートブランチ): プルしたいリモートブランチを選択します(通常は現在のローカルブランチが追跡しているリモートブランチ)。
- Local Branch(ローカルブランチ): プルした変更をマージ/リベースするローカルブランチを選択します(通常は現在チェックアウトしているブランチ)。
- Merge / Rebase: プルしたリモートの変更をローカルに取り込む方法を選択します。
- Merge(マージ): リモートの変更とローカルの変更を統合します。新しいマージコミットが作成されることがあります。履歴は分岐・合流した状態になります。
- Rebase(リベース): ローカルで行ったコミットを一時的に取り出し、リモートの最新コミットの上に再適用します。履歴が直線的になり見やすくなりますが、リベースしたコミットのハッシュが変わるため、一度プッシュしたコミットに対してリベースを行うと問題が発生することがあります。基本的にはMergeを選択するのが初心者には安全です。
- Remote(リモート): プルしたいリモートリポジトリを選択します(通常は
- 設定を確認し、「OK」をクリックします。
- リモートの変更がフェッチされ、選択した方法(マージまたはリベース)でローカルブランチに統合されます。
- マージを選択した場合で、ローカルとリモートで同じ箇所のファイルが変更されていた場合は「マージコンフリクト」が発生することがあります(後述)。
他の人が変更をプッシュした可能性のあるリモートリポジトリから作業を開始する前や、ローカルでの変更をプッシュする前には、必ずプルを実行してローカル環境を最新の状態に保つようにしましょう。
4.6. 変更の取り消し・差分の確認
Gitを使えば、行った変更の内容を確認したり、必要に応じて元に戻したりすることが簡単にできます。
4.6.1. 変更内容の差分を確認 (Diff)
ファイルに加えた変更内容を、修正前の状態と比較して確認できます。
- 変更したファイル(アイコンが赤いエクスクラメーションマークや青いプラスマークになっているファイル)を右クリックし、「TortoiseGit(T)」->「Diff(差分)…」または「Diff with previous version(前のバージョンと比較)…」を選択します。
- TortoiseGitMergeという差分表示ツールが起動し、現在のファイル内容と、最後にコミットされたバージョン(または指定した別のバージョン)の内容が並べて表示されます。追加された行、削除された行、変更された行などが色分けされて表示されるため、どこを変更したかが一目で分かります。
- このツールで変更内容を確認できます。編集はできません。
リポジトリのフォルダ自体を右クリックして「Diff(差分)…」を選択すると、現在の作業コピーで行った全ての変更の差分をまとめて確認できます。
また、ログウィンドウで2つのコミットを選択し右クリックすると、「Compare two revisions(二つのリビジョンを比較)」というメニューが表示され、指定した2つのコミット間の差分(どのファイルがどのように変更されたか)を確認することもできます。
4.6.2. ファイルの変更を元に戻す (Revert)
作業中に間違った変更をしてしまい、最後にコミットした状態に戻したい場合は、「Revert」操作を行います。これはステージングされていない変更や、ステージしたがまだコミットしていない変更を破棄する操作です。
- 元に戻したい変更が含まれるファイル、またはフォルダ(フォルダ内の全ての変更を元に戻す場合)を右クリックします。
- コンテキストメニューから「TortoiseGit(T)」->「Revert(元に戻す)…」を選択します。
- 「Revert」ダイアログが表示され、元に戻す対象のファイルがリストアップされます。
- 元に戻したいファイルにチェックが入っていることを確認し、「OK」をクリックします。
- 選択したファイルの変更が破棄され、最後にコミットした時点の内容に戻ります。アイコンオーバーレイも緑色のチェックマークに戻ります。
この操作は、ローカルの作業コピー上の変更のみを対象とします。一度コミットした変更を取り消したい場合は、別の方法(Git Revert CommitやGit Reset)を使います。
4.6.3. コミットを取り消す (Revert/Reset)
一度ローカルリポジトリにコミットした変更を取り消したい場合、主に2つの方法があります。
- Revert Commit (リバートコミット): 特定のコミットで行われた変更を打ち消す新しいコミットを作成します。これにより、履歴を書き換えることなく変更を取り消せます。他の人と共有しているリモートブランチ上のコミットを取り消す場合に推奨される方法です。
- 「Show Log(ログを表示)…」を開きます。
- 取り消したいコミットを右クリックします。
- コンテキストメニューから「Revert changes from this commit(このコミットの変更を取り消す)」を選択します。
- 新しいコミットを作成するためのダイアログが表示されます。コミットメッセージを確認し、「Commit」をクリックします。
- 新しいコミットが作成され、ログに表示されます。このコミットは、選択したコミットで行われた変更を逆方向に適用したものです。
- Reset (リセット): 指定したコミットの状態にブランチのHEAD(現在の位置)を移動させます。それ以降のコミットは履歴から消えたことになります(実際にはGit内部にはしばらく残りますが、通常の方法ではアクセスできなくなります)。この操作は履歴を書き換えるため、他の人と共有しているブランチに対して行うべきではありません。ローカルで作業中のブランチの最後のコミットを取り消す場合などに利用します。
- 「Show Log(ログを表示)…」を開きます。
- HEADを戻したいコミット(つまり、残したい一番新しいコミット)を右クリックします。
- コンテキストメニューから「Reset “ブランチ名” to this…(ブランチ名)をここにリセット…」を選択します。
- 「Reset」ダイアログが表示されます。「Reset type(リセットの種類)」を選択します。
- Soft: HEADを指定したコミットに移動しますが、インデックス(ステージングエリア)と作業コピーは変更しません。直前のコミットを取り消して、その変更を再度ステージングした状態にしたい場合などに使います。
- Mixed (Default): HEADを指定したコミットに移動し、インデックスを指定したコミットの状態に戻しますが、作業コピーは変更しません。直前のコミットを取り消して、その変更を未ステージの状態に戻したい場合に使います。
- Hard: HEADを指定したコミットに移動し、インデックスと作業コピーも完全に指定したコミットの状態に戻します。指定したコミット以降に行った全ての変更は失われます。このオプションは非常に強力で、失っても構わない変更がある場合にのみ慎重に使用してください。
- 選択したリセットタイプを確認し、「OK」をクリックします。
- ブランチのHEADが移動し、ログから後続のコミットが見えなくなります(Hardリセットの場合は作業コピーの内容も変わります)。
初心者は、履歴を書き換えないRevert Commitを使うのがより安全です。Resetを使う場合は、特にHardリセットは強力なため、その影響を十分に理解してから使用してください。
5. ブランチの操作
Gitの最も強力な機能の一つが「ブランチ」です。ブランチを使うことで、メインの開発ライン(通常はmain
またはmaster
ブランチ)から分岐して、新しい機能の開発やバグ修正などを独立して行うことができます。これにより、メインの開発に影響を与えることなく、安全に実験や並行作業が進められます。
5.1. ブランチとは
ブランチは、コミット履歴上の特定のコミットを指し示すポインタのようなものです。新しいコミットを作成すると、現在チェックアウトしているブランチのポインタが自動的にその新しいコミットに進みます。
ほとんどのGitリポジトリでは、初期状態でmain
またはmaster
という名前のメインブランチがあります。これがプロジェクトの安定版やリリース版のコードを管理するブランチとなることが多いです。
あなたが新しい機能を追加したい場合、直接メインブランチで作業するのではなく、メインブランチから新しいブランチ(例: feature/add-user-profile
)を作成し、その新しいブランチで作業します。機能が完成したら、そのブランチをメインブランチに「マージ」して変更を取り込みます。
ブランチを使い分けることで、複数の人が同時に異なる機能を開発したり、安定版のメンテナンスを行いながら次期バージョンの開発を進めたりといった並行作業が容易になります。
5.2. ブランチの作成 (Git Branch)
新しいブランチを作成します。これは現在のコミットを指す新しいポインタを作る操作です。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Create Branch…(ブランチを作成)…」を選択します。
- 「Create Branch」ダイアログが表示されます。
- Name(名前): 新しいブランチの名前を入力します(例:
feature/login-page
)。ブランチ名には、スラッシュを使って階層構造を持たせることがよくあります。 - From(元): どのコミットから新しいブランチを作成するかを選択します。デフォルトでは現在チェックアウトしているコミットになっています。特定の過去のコミットから分岐させたい場合は、「From」の右側のボタンをクリックしてログからコミットを選択できます。
- Switch to new branch(新しいブランチに切り替える): 作成と同時にその新しいブランチに切り替えたい場合は、このチェックボックスをオンにします。通常はオンにしてすぐに新しいブランチで作業できるようにします。
- Name(名前): 新しいブランチの名前を入力します(例:
- 設定を確認し、「OK」をクリックします。
- 新しいブランチが作成され(「Switch to new branch」にチェックを入れた場合はブランチが切り替わります)、ログウィンドウで新しいブランチ名が確認できるようになります。
5.3. ブランチの切り替え (Git Checkout / Git Switch)
作業するブランチを変更します。ブランチを切り替えると、作業コピーのファイルの内容が、切り替え先のブランチの最新コミットの状態に自動的に更新されます。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Switch/Checkout…(切り替え/チェックアウト)…」を選択します。
- 「Switch/Checkout」ダイアログが表示されます。
- Branch(ブランチ): 切り替えたいブランチを選択します。ローカルブランチとリモート追跡ブランチがリストアップされます。ローカルブランチを選択します。
- Clean working tree (ignore local modifications)(作業ツリーをクリーンアップ (ローカルの変更を無視)): 現在の作業コピーに変更がある場合、通常はブランチの切り替えができません。このチェックボックスをオンにすると、現在のローカルの変更を破棄して強制的に切り替えることができます。注意: 未コミットの変更が失われる可能性があるため、通常は変更をコミットまたはスタッシュしてから切り替えるべきです。
- 選択したブランチを確認し、「OK」をクリックします。
- 作業コピーのファイル内容が、切り替え先のブランチの最新コミットの状態に更新されます。エクスプローラーのアイコンオーバーレイが更新され、現在のブランチでのファイルの状態が表示されます。
現在どのブランチで作業しているかは、ステータスダイアログやログウィンドウ、またはリポジトリフォルダを右クリックしたメニューのTortoiseGitサブメニュー名の横(例: Git Commit -> “master”)などで確認できます。
5.4. ブランチのマージ (Git Merge)
他のブランチで行った変更を、現在のブランチに取り込みます。例えば、feature/login-page
ブランチでログイン機能を開発した後、その変更をmain
ブランチに取り込む場合などにマージを行います。
- まず、変更を取り込みたい側のブランチ(この例では
main
)に切り替えます。「Switch/Checkout…」操作でmain
ブランチを選択して切り替えてください。 main
ブランチが最新の状態であることを確認するため、リモートからプルしておくと良いでしょう。- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Merge…(マージ)…」を選択します。
- 「Merge」ダイアログが表示されます。
- Branch(ブランチ): 現在のブランチ(
main
)にマージしたい、変更元のブランチ(この例ではfeature/login-page
)を選択します。 - その他のオプション(No Fast-Forward, Squashなど)は、最初はデフォルトのままで構いません。
- Branch(ブランチ): 現在のブランチ(
- 選択したブランチを確認し、「OK」をクリックします。
- Gitがマージを実行します。
- Fast-Forwardマージ: もし現在のブランチ(
main
)を分岐元のコミットから何も変更しておらず、マージしたいブランチ(feature/login-page
)が分岐元から単純に進んでいるだけの場合、Gitは新しいコミットを作成せず、現在のブランチのポインタをマージしたいブランチの最新コミットまで移動させます。これをFast-Forwardマージと呼びます。 - 3-wayマージ: 現在のブランチ(
main
)とマージしたいブランチ(feature/login-page
)の両方で、共通の分岐元コミットから変更が加えられている場合、Gitは両方の変更を統合して新しい「マージコミット」を作成します。
- Fast-Forwardマージ: もし現在のブランチ(
- マージが成功すると、作業コピーのファイル内容が統合された状態に更新されます。
- マージコミットが作成された場合は、そのコミットメッセージを確認または編集して確定します。
マージに成功したら、その変更をリモートリポジトリにプッシュすることを忘れないでください。
5.5. マージコンフリクトの解消
マージを実行した際に、同じファイルの同じ行付近を両方のブランチで異なる内容に変更していた場合など、Gitがどちらの変更を採用すべきか自動的に判断できない状況が発生します。これを「マージコンフリクト (Merge Conflict)」と呼びます。
コンフリクトが発生すると、TortoiseGitはエラーメッセージを表示し、コンフリクトが発生したファイルのアイコンが赤く表示されます。また、コンフリクトが発生したファイルの中身には、Gitが自動挿入した特殊なマーカー(<<<<<<<
, =======
, >>>>>>>
など)が含まれます。
マージコンフリクトを解消するには、以下の手順を行います。
- コンフリクトが発生したファイル(赤いアイコンのファイル)を右クリックし、「TortoiseGit(T)」->「Edit Conflicts(コンフリクトを編集)」を選択します。
- TortoiseGitMergeなどのマージツールが起動します。通常、左ペインに現在のブランチの変更、右ペインにマージしたいブランチの変更、中央ペインに最終的に反映させたい結果が表示されます。
- マージツールを使って、どちらの変更を採用するか、あるいは両方の変更を組み合わせて手動でファイルを編集し、コンフリクトしている箇所を解決します。Gitが自動挿入した特殊なマーカーも手動で削除します。
- 全てのコンフリクトを解消し、ファイルを保存します。
- エクスプローラーに戻り、コンフリクトを解消したファイル(まだ赤いアイコンのままです)を右クリックし、「TortoiseGit(T)」->「Add(追加)」を選択します。これは、コンフリクト解消済みのファイルをステージングエリアに追加する操作です。
- 全てのコンフリクトファイルに対して上記の操作を行い、全てをステージングエリアに追加します。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Git Commit -> “ブランチ名”」を選択します。マージコミットのメッセージが自動入力されていますので、必要に応じて編集し、「Commit」をクリックします。
これでマージコンフリクトの解消とマージコミットの作成が完了し、マージが終了します。コンフリクト解消はGit操作の中でも少し複雑な部分ですが、落ち着いて手順を追えば必ず解決できます。
5.6. ブランチの削除 (Git Branch -d)
役割を終えたブランチは削除することができます。
- 削除したいブランチ以外のブランチに切り替えていることを確認してください(チェックアウトしているブランチは削除できません)。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Delete Branch…(ブランチを削除)…」を選択します。
- 「Delete Branch」ダイアログが表示されます。
- 削除可能なローカルブランチがリストアップされます。
- 「Force delete if not merged(マージされていなくても強制的に削除)」のチェックボックスがあります。通常は、削除したいブランチの変更が現在のブランチにマージされていることを確認してから削除すべきです。もしマージされていない変更が含まれるブランチを誤って削除しようとすると、Gitは警告を表示して削除を中断します。どうしてもマージせずに削除したい場合は、このチェックボックスをオンにしますが、変更が失われる可能性があるため注意が必要です。
- 削除したいブランチにチェックを入れ、「OK」をクリックします。
- 選択したブランチが削除されます。
リモートリポジトリ上のブランチを削除したい場合は、プッシュ操作のダイアログなどからリモートブランチの削除を選択するか、ログウィンドウでリモート追跡ブランチを右クリックして削除を選択します。
5.7. リモートブランチの追跡
ローカルブランチをリモートブランチに関連付けることで、git pull
やgit push
などの操作でリモートブランチ名を省略できるようになります。クローンや初回プッシュ時に自動的に設定されることが多いですが、手動で設定することも可能です。
ログウィンドウでリモート追跡ブランチ(例: origin/feature/login-page
)を右クリックし、「Create local branch(ローカルブランチを作成)」を選択すると、そのリモートブランチを追跡するローカルブランチを簡単に作成できます。
6. 応用的なGit操作(簡単な紹介)
ここでは、初心者向けガイドとしては少し踏み込んだ、しかし知っておくと便利な操作を簡単に紹介します。
6.1. タグの操作 (Git Tag)
特定のコミットに永続的な名前(タグ)を付けることができます。主にリリースのバージョン(例: v1.0.0
)などにタグを付けます。
- 「Show Log(ログを表示)…」でコミットを右クリックし、「Create Tag at this position(この位置にタグを作成)」を選択します。タグ名を入力して作成します。
- 作成したタグはログウィンドウに表示されます。
- デフォルトでは、タグはローカルにのみ作成されます。リモートリポジトリと共有したい場合は、プッシュ操作の際に「Include Tags(タグを含める)」オプションをチェックしてプッシュします。
6.2. スタッシュの操作 (Git Stash)
作業中に別のブランチに切り替えたいが、現在の変更はまだコミットできる状態ではない、といった場合に、現在の作業コピーの変更を一時的に退避させておくことができます。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Stash Save…(スタッシュに保存)…」を選択します。メッセージ(スタッシュの名前)を入力して保存します。現在の作業コピーはクリーンな状態に戻ります。
- 退避させた変更を元に戻したいブランチに切り替えた後、リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Stash List(スタッシュリスト)…」を選択します。保存されているスタッシュのリストが表示されるので、適用したいスタッシュを選択して「Apply Stash(スタッシュを適用)」をクリックします。
6.3. リモートリポジトリの追加・管理 (Git Remote)
クローンしたリポジトリには通常origin
という名前のリモートが一つだけ設定されていますが、必要に応じて複数のリモートリポジトリを追加したり管理したりできます。
- リポジトリのフォルダ内の何もない場所を右クリックし、「TortoiseGit(T)」->「Settings(設定)…」を選択します。
- 設定ダイアログの左側ツリーメニューで「Git」->「Remote」を選択します。
- ここで既存のリモートの設定を確認したり、新しいリモートを追加したり、既存のリモートを削除したりできます。
7. TortoiseGitの便利機能
TortoiseGitは、Gitの操作をGUIで行えるだけでなく、いくつかの便利な独自機能を提供しています。
- アイコンオーバーレイ: エクスプローラーでファイルやフォルダのGitの状態(未変更、変更あり、未追跡など)をアイコンで表示します。これにより、どのファイルに手を加えたのかが一目で分かります。
- ログビューアー: プロジェクトのコミット履歴をグラフ形式で表示します。ブランチの分岐やマージの状況が視覚的に理解しやすくなります。コミットの詳細確認や、過去のコミットへの操作(チェックアウト、リバート、ブランチ作成など)がここから行えます。
- 差分ビューアー (TortoiseGitMerge): ファイルの差分やマージコンフリクトを分かりやすく表示します。色分けされた表示や、コンフリクト部分の編集支援機能があります。
- リベース操作: ブランチのリベース操作もGUIで行えますが、複雑なリベースは理解が必要なため、最初はマージから始めるのがおすすめです。
- 設定ダイアログ: TortoiseGitやGit自体の様々な設定をGUIで変更できます。ユーザー名、メールアドレス、SSHキーの設定、アイコンオーバーレイの表示設定など、多くの項目があります。
これらの便利機能を活用することで、Gitでの作業をより効率的かつ快適に進めることができます。
8. よくある問題とトラブルシューティング
TortoiseGitやGitを使い始めると、いくつか戸惑うことがあるかもしれません。代表的なものとその対処法を紹介します。
- 認証エラー: プッシュやプル、クローン時に認証エラーが発生する場合。
- HTTPS接続の場合: 入力したユーザー名やパスワード、パーソナルアクセストークンが正しいか確認してください。GitHubなどではパスワード認証が廃止され、PATの使用が必須になっている場合があります。Credential Managerが認証情報を正しく記憶しているか確認してください。
- SSH接続の場合: PuTTYgenで生成した公開鍵がリモートサービスのSSH設定に正しく登録されているか確認してください。秘密鍵のパスがTortoiseGitの設定(Git -> Remote)で正しく指定されているか確認してください。秘密鍵にパスフレーズを設定した場合、Pageantが実行され、秘密鍵が読み込まれているか確認してください。
ssh -T [email protected]
のようなコマンドをGit Bashから実行して、SSH接続自体ができるかテストしてみるのも有効です。
- プッシュできない (non-fast-forward): ローカルでコミットを作成した後、他の人がリモートリポジトリに先に変更をプッシュしている場合に発生します。
- 解決策: プッシュする前に、必ずプル(
git pull
)を実行してリモートの最新の変更を取り込み、ローカルの変更と統合(マージまたはリベース)してください。その後、改めてプッシュします。
- 解決策: プッシュする前に、必ずプル(
- マージコンフリクトの解消が分からない: コンフリクトが発生した場合、どの部分を残し、どの部分を捨てるか、あるいはどのように組み合わせるかを自分で判断して手動でファイルを編集する必要があります。
- 解決策: マージツール(TortoiseGitMerge)の使い方を練習しましょう。中央ペインで最終結果を編集し、不要な
<<<<<<<
,=======
,>>>>>>>
といったマーカーを全て削除することが重要です。全てのコンフリクトを解消したら、必ずファイルを保存し、そのファイルをgit add
(TortoiseGitのAdd操作)してからコミットします。
- 解決策: マージツール(TortoiseGitMerge)の使い方を練習しましょう。中央ペインで最終結果を編集し、不要な
- 一部のファイルにアイコンオーバーレイが表示されない:
- エクスプローラーが再起動されていないか、アイコンオーバーレイの表示制限に引っかかっている可能性があります。PCを再起動してみるか、TortoiseGit SettingsのIcon Overlays設定で制限を確認・調整してみてください。また、TortoiseGitはエクスプローラーと統合されているため、他のエクスプローラー拡張ツールとの競合が原因の場合もあります。
- 大きなファイルをコミットしてしまった: Gitはバイナリファイルなど大きなファイルの管理には向いていません。一度リポジトリにコミットされた大きなファイルは、後から履歴から削除するのが非常に困難です。
- 対処法: バージョン管理すべきファイルの種類を理解し、大きなバイナリファイル(画像、動画、圧縮ファイルなど)や、生成されるファイル(コンパイル結果、ログファイルなど)は
.gitignore
ファイルでGitの管理対象から除外するように設定します。.gitignore
ファイルはリポジトリのルートに作成し、無視したいファイルやフォルダのパターンを記述します。
- 対処法: バージョン管理すべきファイルの種類を理解し、大きなバイナリファイル(画像、動画、圧縮ファイルなど)や、生成されるファイル(コンパイル結果、ログファイルなど)は
困ったときは、エラーメッセージの内容をよく読み、インターネットで検索してみることをお勧めします。TortoiseGitやGitに関する情報は豊富にあります。
9. まとめ
このガイドでは、TortoiseGitを使ったGitの基本的なワークフローを詳細に解説しました。
- インストールとセットアップ: Git for WindowsとTortoiseGit本体、必要であれば言語パックやSSHキーを設定しました。
- リポジトリの準備: 新規プロジェクトの場合はローカルリポジトリを作成、既存プロジェクトの場合はリモートからクローンしました。
- 日常操作:
- ファイルの状態をアイコンオーバーレイやステータスダイアログで確認しました。
- 変更内容をステージングエリアに追加(Add)しました。
- ステージした変更をローカルリポジトリに記録(Commit)しました。
- コミット履歴をログビューアーで確認しました。
- ローカルのコミットをリモートに送信(Push)しました。
- リモートの変更をローカルに取り込み(Fetch/Pull)、他の人の変更と統合しました。
- 変更内容の差分を確認したり、ローカルの変更やコミットを取り消したりする方法を学びました。
- ブランチ操作:
- ブランチの概念を理解し、新しいブランチを作成(Create Branch)しました。
- 作業するブランチを切り替え(Switch/Checkout)ました。
- 他のブランチの変更を現在のブランチに取り込む(Merge)方法と、マージコンフリクトの解消手順を学びました。
- 役割を終えたブランチを削除(Delete Branch)しました。
- 応用的な操作や便利機能、トラブルシューティングについても触れました。
TortoiseGitを使うことで、コマンドを覚える必要なくGitの強力なバージョン管理機能を活用できます。まずは、小さなプロジェクトや試し用のリポジトリを作成し、ここで学んだ基本的な操作(追加、コミット、プッシュ、プル、ブランチ作成・切り替え・マージ)を繰り返し練習してみてください。
バージョン管理は、プロジェクトを安全に、そして効率的に進めるための強力な味方です。TortoiseGitと共に、快適なバージョン管理ライフを送りましょう!