プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

【Git】「nothing added to commit but untracked files present」エラーの原因と解決策

ローカル環境で新しいファイルを作成した後、それらのファイルをリポジトリに追加しないままリモートからプルしようとすると、「nothing added to commit but untracked files present」というGitエラーが発生します。

本記事では、このエラーの意味を解説し、2つの解決策とそれぞれのメリット・デメリットについて詳しく見ていきます。

「nothing added to commit but untracked files present」エラーとは

Gitは分散型バージョン管理システムです。リポジトリのローカルコピーを作成し、そこに自分自身の変更を加えることができます。ただし、これらの変更はコミットするまでメインプロジェクトには反映されません。

リモートサーバーからコードをプルする際は、ローカルマシン上のすべてのファイルがGitのステージングエリアに含まれているか、コミットの一部になっていることを確認する必要があります。これは、Gitがどのファイルがリポジトリの一部であるかを正しく認識する必要があるためです。

すべてのファイルをステージングエリアまたはコミットに追加していない状態のリポジトリでgit pullコマンドを実行すると、次のエラーが発生します。

nothing added to commit but untracked files present

追跡されていないファイル(Untracked Files)とは

追跡されていないファイルとは、Gitで管理するように設定されたプロジェクト内に存在するものの、まだGitリポジトリの一部になっていないファイルのことです。

ファイルがGitリポジトリの一部になるのは、「git add」コマンドで追加した場合のみです。この仕組みにより、リポジトリの開発履歴に含める必要のないファイルを、ローカルマシン上で自由に作成・編集できます。

追跡されていないファイルは、プロジェクトに追加するか、.gitignoreファイルのルールで無視するか、いずれかの対応が必要です。

解決策

このエラーには2つの解決策があります。

解決策1:ファイルをGitリポジトリに追加する

1つ目の解決策は、追跡されていないすべてのファイルをGitリポジトリに追加することです。git addコマンドを使用します。

git add file_to_add.md

これにより、ファイルがステージングエリアに移動します。ファイルをステージングエリアに追加すると、そのファイルは追跡対象になります。ステージングエリア内のすべてのファイルは、削除されない限り次のコミットに含まれるためです。Gitがこれらのファイルをコミットに含めるべきかどうかを判断するには、ファイルを追跡しておく必要があります。

解決策2:.gitignoreでファイルを無視する

2つ目の解決策は、作成したファイルを無視することです。この方法は、作成したファイルをGitリポジトリの一部にしたくない場合に最適です。APIキーを保存する設定ファイルや、ローカルの依存関係を格納するフォルダなどがその典型例です。

ファイルを無視するには、プロジェクトの.gitignoreファイルにエントリを追加します。

file_to_add.md
directory/

.gitignoreファイルはプロジェクト内の任意のディレクトリに配置できますが、アクセスしやすいようリポジトリのルートフォルダに置くのがおすすめです。.gitignoreファイル内のすべてのルールは、そのファイルが配置されているフォルダ内のファイルやフォルダに再帰的に適用されます。

エラーを解決したら、git pullコマンドでGitリポジトリの最新バージョンをプルできます。

git pull

プロジェクトフォルダ内のすべてのファイルが追跡対象または無視対象になったため、このコマンドは正常に実行されるはずです。

まとめ

「nothing added to commit but untracked files present」エラーは、リポジトリのローカル作業コピーで新しいファイルを作成した後、リポジトリの最新版をプルする前にステージングエリアへの追加を忘れた場合に発生します。

このエラーを修正するには、原因となっているファイルをステージングエリアに追加するか、.gitignoreファイルで無視してください。これで、この一般的なGitエラーをプロのように解決できるようになりました。

  1. Git初心者向けガイド:バージョン管理の基本をやさしく解説

    Linuxユーザーなら、新しいプログラムをダウンロードするときや、CVSやSubversionといったバージョン管理システムを調べているときに、「Git」という名前を目にしたことがあるかもしれません。Gitは、Linuxカーネルの生みの親として知られるLinus Torvalds氏が、既存のソリューションに満足できなかったことをきっかけに開発したリビジョン管理システムです。設計における最大の重点は速度、より正確には効率性に置かれており、従来のシステムが抱えていた多くの欠点を解消しながら、はるかに短い時間で処理を実行します。この記事では、これからGitを学びたい初心者の方向けに、基本的な使い方

  2. Windowsサンドボックスとは?Windows 10で.exeファイルを安全に実行する方法

    Windowsで実行ファイル(.exe)を扱うのは、どうしてもリスクがつきものです。メールの添付ファイルを受け取ったときや、新しいソフトウェアをインストールするときなど、.exeファイルを実行する場面は日常的に多くあります。「このファイルを実行してもよろしいですか?」「このファイルは信頼できない場所から提供された可能性があります」といった警告メッセージを目にするたびに、漠然とした不安を感じたことはないでしょうか。こうした悩みに対し、Microsoftは「Windowsサンドボックス」というシンプルかつ安全なソリューションを用意しました。この記事では、Windowsサンドボックスの仕組みや使い方