Git commit -a「追跡されていないファイル」?


92

を実行するgit commit -aと、次のように表示されます。

  # Please enter the commit message for your changes. Lines starting
  # with '#' will be ignored, and an empty message aborts the commit.
  # On branch better_tag_show
  # Changes to be committed:
  #   (use "git reset HEAD <file>..." to unstage)
  #
  # modified:   ../assets/stylesheets/application.css
  # modified:   ../views/pages/home.html.erb
  # modified:   ../views/tags/show.html.erb
  # modified:   ../../db/seeds.rb
  #
  # Untracked files:
  #   (use "git add <file>..." to include in what will be committed)
  #
  # ../assets/stylesheets/
  # ../views/pages/

これらの追跡されていないファイルはどういう意味ですか?すべての変更は確かに追跡されています。ここでgitが追跡されていないファイルについて警告している理由がわかりません。

編集

わかりました、混乱した返信がたくさんあります。これは私がgit commit -aこれの後に何が起こるかです。

# On branch master
nothing to commit (working directory clean)

ご覧のとおり、変更が適用された4つのファイル以外には何もありません。

私の質問は次のように言い換える必要があります:このコミットのすべての変更が追跡されているのに、追跡されていないファイルについてgitが警告を表示するのはなぜですか?

つまり、git commitメッセージの追跡されていない警告は不要ですか?


1
(use "git add <file>..." to include in what will be committed)
zengr

1
git commit -aは追跡されたファイルへのすべての変更をコミットするため、これは不要です。
消滅

3
これまでファイルを編集したことない場合に必要addです。次のドキュメントから-a変更および削除されたファイルを自動的にステージングするようにコマンドに指示しますが、gitに通知していない新しいファイルは影響を受けません
Noufal Ibrahim

なぜgitはあなたに「警告」していると言うのですか?私が見るように、「追跡されていない」ファイルのメッセージは情報提供です。これらのファイルを管理し、それに応じて動作する必要があるかどうかを確認する必要があります。
sateesh

@sateeshさて、あなたがそれをなんと呼んでも、私はこれが本当に本当に役立つとは思いません。この情報はどうですか?私はどうしたらいいですか?上記のファイルを除いて、他のファイルに変更はないと書いた「編集」セクションで私の投稿を読みましたか?この有益な情報を見つけた場合、心配することが何もない場合、リポジトリツリー上のランダムなフォルダーは追跡されないと私が言っているのと同じです。
消えた

回答:


105

同じ問題を抱えている他の人は、実行してみてください

git add . 追跡する(追跡されていないものを含む)現在のディレクトリのすべてのファイルを追加してから使用します

git commit -a すべての追跡ファイルをコミットします。

@Pacerierによって提案されているように、同じことを行う1つのライナーは

git add -A


4
git commit -a追跡されていないファイルを追跡するのではなく、追跡されているすべてのファイルをコミットします。 git add .現在のディレクトリで追跡されていないファイルを追跡します。 git add -a追跡されていないすべてのファイルを追跡します。
ここ

@matteoそれはgit add -A、ではありませんgit commit -A。私の知る限り、git commit追跡できないファイルを含むスイッチに渡すことはできません。
レン

1
-aは現在、Aだけで非推奨になっているようです。ありがとうございます。:)
tcratius 2018

これらのコマンドの洞察力のために、次のことが確認できます。stackoverflow.com/questions/572549/...
Onat Korucu

30

git commit -am "msg"同じではありませんgit add fileし、git commit -m "msg"

gitトラッキングに追加されなかったファイルがある場合は、まだ実行する必要があります git add file

「git commit -a」コマンドは、2段階のプロセスへのショートカットです。リポジトリで既知のファイルを変更した後でも、リポジトリに「Hey!これをステージングされたファイルに追加して、最終的にはコミットします。」これは、「git add」コマンドを発行することによって行われます。「git commit -a」は、ファイルのステージングと1つのステップでのコミットです。

ソース:「git commit -a」および「git add」


しかし、あなたが言ったようにgit commit -a = git add。+ git commitなぜファイルを追跡領域に自動追加しないのですか?? ....
Johnny

1
@Johnny:+ git commit -aと等しくない。このステップでは、現在のディレクトリのすべてではなく、で変更されているとリストされているファイルのみを追加します。git add .git commitgit addgit status
Soren Bjornstad

ええ、私は今日それを発見しました!
KansaiRobot

9

コマンドラインに入力する必要があります

git add --all

これはすべての追跡されていないファイルをコミットします

編集:

ファイルをステージングした後、それらはコミットの準備ができているので、次のコマンドは

git commit -am "Your commit message"

5
これにより、すべてのファイルがステージングされコミットされません。あなたはまだそれを個別に行う必要があります。
Saeb Amini、

8
  1. まず、すべての追跡されていないファイルを追加する必要があります。次のコマンドラインを使用します。

    git add *

  2. 次に、次のコマンドラインを使用してコミットします。

    git commit -a


7

追跡されていないファイルに問題がある場合は、この3行のスクリプトが役立ちます。

git rm -r --cached .
git add -A
git commit -am 'fix'

じゃあ git push


今は無視している追跡されたファイルの追跡を解除する必要があったので、これは私にとっては面倒です。
スパイダーマン

2

名前が示すように、「追跡されていないファイル」は、gitによって追跡されていないファイルです。それらはステージング領域になく、以前のコミットの一部ではありませんでした。それらをバージョン管理したい(またはgitで管理したい)場合は、「git add」を使用して「git」に指示することにより、バージョン管理を行うことができます。この章チェックリポジトリへの録音変更Progitの gitのレポへの変更を記録し、また、用語の説明についての良い説明を提供するために、素敵なビジュアルを使用してブック「追跡」と「人跡未踏」


0

ファイルをコミットまたは追加する前に、ローカルgitの正しいディレクトリ(リポジトリのメインフォルダー)にいることを確認してください。これにより、.gitフォルダーの設定を見つけることができます。


これは質問に対する答えを提供しません。批評したり、著者に説明を求めたりするには、投稿の下にコメントを残してください。- レビューから
sampathsris
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.