GitIgnore を使用して Git リポジトリで EXE ファイルを無視する方法

GitGitBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチュートリアルでは、.gitignore ファイルを使用して、Git リポジトリ内で実行可能ファイル(.exe ファイル)を無視するプロセスを説明します。このガイドを終える頃には、.gitignore ファイルとは何か、なぜ重要なのか、そして Git によって追跡されないように .exe ファイルを構成する方法を理解できるようになります。この知識は、不要なファイルがコミットされるのを防ぎ、クリーンなリポジトリを維持するのに役立ちます。

Git と .gitignore ファイルの理解

.gitignore ファイルの操作を始める前に、いくつかの基本的な概念を理解しておきましょう。

Git とは?

Git は、開発者がコードの変更を追跡し、チームメンバーと共同作業を行い、プロジェクトの履歴を維持するのに役立つバージョン管理システムです。Git を使用すると、特に指示がない限り、リポジトリ内のすべてのファイルが追跡されます。

.gitignore ファイルとは?

.gitignore ファイルは、プロジェクト内で Git に無視させるファイルまたはディレクトリを指定するテキストファイルです。.gitignore ファイルにリストされているファイルは Git によって追跡されません。つまり、コミット履歴に表示されたり、リモートリポジトリにプッシュされたりすることはありません。

なぜ .gitignore ファイルを使用するのか?

.gitignore ファイルを使用する理由はいくつかあります。

  1. コンパイル済みファイルのコミットを回避する: .exe ファイルなどのコンパイル済みファイルはサイズが大きくなる可能性があり、通常はソースコードから生成されるため、追跡する必要はありません。

  2. 個人の設定ファイルを防ぐ: 多くの開発者は、他の人に影響を与えない独自の構成設定を持っています。

  3. 機密情報を非公開にする: シークレット、パスワード、または API キーを含むファイルは、Git で追跡すべきではありません。

  4. リポジトリサイズの削減: 不要なファイルを除外することで、リポジトリをより小さく、より効率的に保つことができます。

このチュートリアルでは、Windows 環境でよく見られる実行可能ファイルである .exe ファイルの無視に焦点を当てます。これらのファイルは通常、ソースコードからコンパイルされ、Git リポジトリで追跡する必要はありません。

テスト用の Git リポジトリの設定

このステップでは、新しい Git リポジトリを作成し、.gitignore の動作を実証するためにいくつかのファイルを追加します。テスト環境を設定するには、以下の手順に注意深く従ってください。

新しい Git リポジトリの作成

まず、プロジェクト用の新しいディレクトリを作成し、それを Git リポジトリとして初期化することから始めましょう。

  1. ターミナルを開きます。デフォルトのディレクトリ /home/labex/project にいるはずです。

  2. gitignore-test という名前の新しいディレクトリを作成し、そこに移動します。

    mkdir gitignore-test
    cd gitignore-test
  3. 新しい Git リポジトリを初期化します。

    git init

    次のような出力が表示されるはずです。

    Initialized empty Git repository in /home/labex/project/gitignore-test/.git/

テストファイルの作成

次に、.exe ファイルをシミュレートするファイルを含め、リポジトリにいくつかのテストファイルを作成しましょう。

  1. シンプルなテキストファイルを作成します。

    echo "This is a regular text file" > readme.txt
  2. .exe ファイルをシミュレートするファイルを作成します(デモンストレーション用)。

    echo "This simulates an executable file" > program.exe
  3. 別のテキストファイルを作成します。

    echo "This is another text file" > notes.txt
  4. Git リポジトリのステータスを確認して、Git がどのファイルを追跡しているかを確認します。

    git status

    次のような出力が表示されるはずです。

    On branch main
    
    No commits yet
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            notes.txt
            program.exe
            readme.txt
    
    nothing added to commit but untracked files present (use "git add" to track)

この時点では、Git が .exe ファイルを含むすべてのファイルを未追跡として表示していることに注意してください。次のステップでは、.exe ファイルを無視するように Git に指示する .gitignore ファイルを作成します。

.gitignore ファイルの作成と設定

リポジトリがいくつかのテストファイルで設定されたので、.exe ファイルを無視するように Git に指示する .gitignore ファイルを作成します。

.gitignore ファイルの作成

  1. ターミナルで、まだ gitignore-test ディレクトリにいることを確認します。

    pwd

    出力は次のようになります。

    /home/labex/project/gitignore-test
  2. nano テキストエディタを使用して、.gitignore ファイルを作成します。

    nano .gitignore
  3. nano エディタで、すべての .exe ファイルを無視する次の行を追加します。

    *.exe

    * は「任意の文字」を意味するワイルドカード文字です。したがって、*.exe は「.exe 拡張子を持つ任意のファイル」を意味します。

  4. Ctrl+O を押してファイルを保存し、Enter を押して確認します。Ctrl+X を押して nano を終了します。

  5. Git リポジトリのステータスをもう一度確認します。

    git status

    次のような出力が表示されるはずです。

    On branch main
    
    No commits yet
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            .gitignore
            notes.txt
            readme.txt
    
    nothing added to commit but untracked files present (use "git add" to track)

program.exe が表示されなくなったことに注意してください。これは、.gitignore の設定により、Git がそれを無視していることを意味します。

ファイルを Git に追加する

それでは、残りのファイルを Git に追加し、最初のコミットを行いましょう。

  1. 無視されていないすべてのファイルを Git に追加します。

    git add .
  2. コミットされる内容を確認します。

    git status

    次のような出力が表示されるはずです。

    On branch main
    
    No commits yet
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
            new file:   .gitignore
            new file:   notes.txt
            new file:   readme.txt
  3. 最初のコミットを行います。

    git commit -m "Initial commit with .gitignore configuration"

    次のような、コミットを確認する出力が表示されるはずです。

    [main (root-commit) xxxxxxx] Initial commit with .gitignore configuration
     3 files changed, 3 insertions(+)
     create mode 100644 .gitignore
     create mode 100644 notes.txt
     create mode 100644 readme.txt

これで、.gitignore ファイルを正常に作成し、すべての .exe ファイルを無視するように設定しました。Git は現在、.gitignore ファイル、readme.txt、および notes.txt を追跡していますが、program.exe は無視しています。

.gitignore ファイルのテスト

.exe ファイルを無視するように .gitignore ファイルを設定したので、正しく動作することを確認するためにテストしましょう。

さらにテストファイルの作成

  1. 別の .exe ファイルを作成します。

    echo "This is another executable file" > another_program.exe
  2. 通常のテキストファイルを作成します。

    echo "This is a new text file" > new_file.txt
  3. Git リポジトリのステータスを確認します。

    git status

    次のような出力が表示されるはずです。

    On branch main
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            new_file.txt
    
    nothing added to commit but untracked files present (use "git add" to track)

another_program.exe が出力にリストされていないことに注意してください。これは、.gitignore ファイルが正しく機能しており、Git がすべての .exe ファイルを無視していることを確認しています。

追跡対象ファイルへの変更

Git によって既に追跡されているファイルを変更した場合に何が起こるかも見てみましょう。

  1. readme.txt ファイルにいくつかのテキストを追加します。

    echo "Adding more content to this file" >> readme.txt
  2. もう一度ステータスを確認します。

    git status

    次のような出力が表示されるはずです。

    On branch main
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
            modified:   readme.txt
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            new_file.txt
    
    no changes added to commit (use "git add" and/or "git commit -a")

これは、Git が readme.txt への変更を追跡していることを示しています。これは、readme.txt が無視されていないためであり、.exe ファイルは引き続き無視されています。

新しい変更の追加とコミット

変更を追加してコミットしましょう。

  1. 無視されていないすべてのファイルを追加します。

    git add .
  2. 変更をコミットします。

    git commit -m "Added new file and modified readme"
  3. コミット履歴を表示します。

    git log --oneline

    最新のコミットが一番上に表示された、2 つのコミットが表示されるはずです。

これで、.gitignore ファイルを正常にテストし、.exe ファイルを無視しながら、リポジトリ内の他のファイルを追跡できることを確認しました。

高度な .gitignore パターンとベストプラクティス

.exe ファイルを無視するために .gitignore を使用する基本を理解したので、いくつかの高度なパターンとベストプラクティスを探求しましょう。

一般的な .gitignore パターン

.gitignore ファイルは、より柔軟なファイルマッチングのためにさまざまなパターンをサポートしています。

  1. 特定のファイルを無視する:

    specific_file.txt
  2. ファイルの種類を無視する:

    *.exe
    *.log
    *.tmp
  3. ディレクトリを無視する:

    build/
    temp/
  4. 特定のディレクトリ内のファイルを無視する:

    logs/*.log
  5. 無視対象から特定のファイルを除外する:

    !important.exe

.gitignore ファイルの更新

いくつかの追加パターンで .gitignore ファイルを更新しましょう。

  1. 編集のために .gitignore ファイルを開きます。

    nano .gitignore
  2. 次の行をファイルに追加します(既存の *.exe 行を含む)。

    ## Ignore all .exe files
    *.exe
    
    ## Ignore log files
    *.log
    
    ## Ignore the temp directory
    temp/
    
    ## Do not ignore this specific executable
    !important.exe
  3. Ctrl+O を押してファイルを保存し、Enter を押して確認します。Ctrl+X を押して nano を終了します。

更新された .gitignore のテスト

更新された .gitignore ファイルをテストしましょう。

  1. ディレクトリといくつかの追加のテストファイルを作成します。

    mkdir temp
    echo "This is a temporary file" > temp/temp_file.txt
    echo "This is a log file" > debug.log
    echo "This is an important executable" > important.exe
  2. Git リポジトリのステータスを確認します。

    git status

    次のような出力が表示されるはずです。

    On branch main
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            .gitignore
            important.exe
    
    no changes added to commit (use "git add" and/or "git commit -a")

Git が debug.logtemp/ ディレクトリ内のすべてを無視していることに注意してください。ただし、important.exe は、!important.exe パターンで明示的に除外したため、無視されていません。

.gitignore を使用するためのベストプラクティス

  1. プロジェクトの最初に .gitignore ファイルを作成する: 最初のコミットを行う前に .gitignore を設定することをお勧めします。

  2. 個人的な設定にはグローバル .gitignore を使用する: すべてのリポジトリに適用される個人的な設定用のグローバル .gitignore ファイルを作成できます。

  3. 具体的なルールを含める: 誤って重要なファイルを無視しないように、何を無視したいかを具体的に指定します。

  4. .gitignore ファイルにコメントを付ける: 特定のファイルまたはディレクトリが無視されている理由を説明するために、コメント(# で始まる行)を追加します。

  5. プログラミング言語のテンプレートを確認する: 多くのプログラミング言語とフレームワークには、オンラインで利用できる推奨される .gitignore テンプレートがあります。

これらのベストプラクティスに従い、.gitignore で利用可能なパターンを理解することで、Git がリポジトリで追跡するファイルを効果的に管理できます。

まとめ

このチュートリアルでは、.exe ファイルの無視に焦点を当て、Git リポジトリで Git が追跡するファイルを効果的に管理するために .gitignore ファイルを使用する方法を学びました。達成したことの概要は次のとおりです。

  1. Git リポジトリで .gitignore ファイルを使用する目的と利点について学びました。

  2. テスト用の Git リポジトリを作成し、Git がファイルをどのように追跡するかを理解するためにサンプルファイルを追加しました。

  3. .gitignore ファイルを作成し、すべての .exe ファイルを無視するように設定し、Git による追跡を防止しました。

  4. さらにファイルを追加し、.exe ファイルが実際に無視されていることを確認することにより、.gitignore の設定をテストしました。

  5. Git リポジトリを効果的に管理するための高度な .gitignore パターンとベストプラクティスを探求しました。

プロジェクトで .gitignore を実装することにより、コンパイルされたバイナリ、一時ファイル、機密情報など、追跡する必要のないファイルを除外することで、クリーンなリポジトリを維持できます。これにより、リポジトリをソースコードと重要なファイルに集中させることができ、より効率的になり、他のユーザーとのコラボレーションが容易になります。