「コミットのステージングされていない変更」とはどういう意味ですか


239

私はあなたがあなたがすべきファイルを追跡したいなら考えました git add [files you want to track]

なぜメッセージを受け取ったのかわかりませんChanges not staged for commit

それらのファイルがステージングされていなかった場合、それらのファイルがそのようなgitものであったことは表示されません Untracked

ここに画像の説明を入力してください

私がやったすべてはから新しい機能を作成したdevelopブランチとで働いていたfeature/change_excel_format支店

それらのファイルはstagedステータスにあるべきだと思いました、

しかしgit status私に言ったChanges not staged for commit

ここに画像の説明を入力してください

簡単に、私はgitの3つの段階がいることを知っている untrackedstagedcommitted のためのステージが何であったか、いずれかを教えてもらえますが、Changes not staged for commit ここに画像の説明を入力してください

したがって、ファイルを変更した場合a (すでにリポジトリ内にあります)

と入力するgit stと、gitが教えてくれますChanges not staged for commit

私の git a場合、ファイルastaged status

file a今を変更すると、file ainのステータスが2つありますgitよね?

だから私はstaged aコミットするのかnot stage aステージングするのかを決めないと、前のステージングfile aは破棄されますか?

ここに画像の説明を入力してください


3
()このメッセージを取得し、このファイルをたい場合は、追加GITながら、あなたが正しいディレクトリパスに(すべてを追加するためのプロジェクトのルート・パス)であることを確認し、コミットする必要があります
Sadee

回答:


325

すでにリポジトリにあるファイルを変更する場合、git addステージングしたい場合は再度それを行う必要があります。

これにより、最後のコミット以降に加えた変更のサブセットのみをコミットできます。たとえばa、file b、file 、fileがあるとしますc。ファイルaとファイルを変更しますbが、変更は本質的に非常に異なり、それらすべてを1つのコミットに含めたくありません。あなたが発行します

git add a
git commit a -m "bugfix, in a"
git add b
git commit b -m "new feature, in b"

余談ですが、すべてをコミットしたい場合は、次のように入力します

git commit -a

それが役に立てば幸い。


1
したがって、これらのファイルがすでにリポジトリにある場合。変更しましたが、git commit THEM追加せずに直接変更することもできますよね?
newBike 2014年

1
もちろん。その場合、異なるファイルに段階的な変更があるかどうかに関係なく、リストされているファイルのみがコミットされます。
Stefano Falasca 2014年

1
私は同じ問題を抱えていますが、私の問題は、追跡されていないファイルのサブモジュールの原因に関するものでもありました。したがって、私のサブディレクトリにgitを使用してすべての変更を追加すると、問題は解決しました。
エリア

1
私はすでに完了しgit clean -fd、まだこれを取得しています。すべての変更を取り除きたいです。他に何をすべきですか?
ハニー、

3
git commit -aすべてをコミットするのではなく、更新されたファイルのみをコミットします。新しいファイルはコミットしません...
Martin

62

それらをステージングするにはgit addを使用する必要があります。そうしないと、コミットされません。コミットしたい変更がgitに通知されることを理解してください。

git add -u :/変更されたすべてのファイル変更をステージにgit add * :/追加し、変更されたファイルと新しいファイル(gitignoreされていない)をステージに 追加します


2
この答えは、上記のものに比べて明確で簡潔です。そのため、私はそれを気に入っています。;)
oaxacamatt

13

これはGitがあなたに伝えるもう1つの方法です。

ちょっと、あなたはいくつかの変更を加えたようですが、私の履歴にページを書き込んだ場合、それらの変更はこれらのページには反映されないことに注意してください。

明示的に指定git addしないと、ファイルへの変更はステージングされません(これは理にかなっています)。

したがって、git commitステージングされていないため、これらの変更は追加されません。それらをコミットしたい場合は、最初にステージングする必要があります(つまりgit add)。


2
しかし、参照しているファイルは変更しませんでした
Eoin

1
この振る舞いが正確にどのように理解できるのか、私にはわかりません。add .再投稿を設定するときにファイルを追跡するようにGitにすでに指示していて、変更を加えたことを検出できる場合、コミットするたびに明示的にファイルを追加する必要があるのはなぜですか?ただ、ファイルに変更を加えるために、私がしなければならないaddcommit push。との間の境界はcommit私には理にかなっています。addとの間の境界commitは途方もなく冗長なようです。
プロメテウス

1
@ハシム私は同意する、私は本当に論理を理解していません。
Herman Toothrot

6

以下の手順に従ってください:

1- git stash
2- git add。
3- git commit -m "コミットメッセージ"


5
git stashは私の変更をすべて削除しました。10時間の作業がありました:(
viniciussvl 2018

13
「git stash」を使用した場合、変更を「temp place」に入れて戻すには、「git stash pop」と入力して「temp place」から変更を取得します
Cyrus Zei

12
@viniciussvlとCyrusのコメントを読むまでは、git stashを使用しないでください
みすぼらしい

1
この場合、なぜgit stashを使用するのですか?
トビアスカウフマン

4

新しいファイルの変更を保存したと考えられます。(navbar.component.htmlなど)

実行:

ng status
modified:   src/app/components/shared/navbar/navbar.component.html

そのファイルの変更をアップロードする場合は、次のコマンドを実行する必要があります。

git add src/app/components/shared/navbar/navbar.component.html

その後:

git commit src/app/components/shared/navbar/navbar.component.html -m "new navbar changes and fixes"

その後:

git push origin [your branch name, usually "master"]

-------------------------------------------------- -------------

または、すべての変更をアップロードする場合(いくつか/すべてのファイル):

git commit -a

そして、これは「変更のためのコミットメッセージを入力してください」と表示されます。

  • メッセージなしでgit commitを実行すると、このメッセージが表示されます(-m)
  • あなたは2つのステップでそれから抜け出すことができます:
  • 1.a. 複数行のメッセージを入力して、コミットを進めます。
  • 1.b. コミットを中止するには空白のままにします。
    1. 「esc」を押してから「:wq」と入力し、Enterキーを押して選択を保存します。ビオラ!

その後:

git push

そしてビオラ!


2
私が上で言ったのと同じ:git commit -a変更をすべてアップロードせず、新しいファイルを含みません。存在するファイルへの更新のみをコミットします。
マーティン

3

int git bashを試してみてください

1。git add -u :/

2。git commit -m "your commit message"

  1. git push -u origin master

注:リポジトリを初期化していない場合。

まず第一に

git init 

上記の手順を順番に実行します。これは私のために働いた


この問題は、ローカルリポジトリからファイルを削除できず、ローカルリポジトリからリモートマスターブランチにコミットできないgitの競合で機能しました。
Siwoku Adeola

1

それはそれらがコミットされるために追加されないことを意味しますgit add scripts / excel_parser.pyなどを実行してそれらをステージングする必要があります..それらがステージングされるとgit statusを実行するとステージングされてgit commitがコミットします

git commit -a -m "all checkin"を実行すると、ツリー内のすべてのファイルが自動的にステージングおよびコミットされます


1

コードに新しいファイルを追加し、ステージング(追加)せずにコードをコミットしようとすると、このエラーが表示される場合があります。

これを克服するには、最初にgit add(git add your_file_name.py)を使用してファイルを追加し、次に変更をコミット(git commit -m "Rename Files" -m "Sample script to rename files as you like")します。


1

私は上記のすべての返信を読んで、マスターの新しいファイルと変更ファイルを更新するために正常に機能する手順に従ってターミナルで試しました。

1)git add。2)git commit -m "your message" 3)git push origin master

これがお役に立てば幸いです。


1

git addを実行すると、間違ったディレクトリにいる可能性があります。:-)


-7

削除する dir/.../.git

私のために働く。


回答には、背景情報、またはそれがなぜ、またはどのように機能したかについての洞察が必要です。
ジョシュアK

そのままでは、答えは質問をサポートしていません。さらに情報を変更または追加することを検討してください。
フランシスコマリアカリスト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.