なぜこれが起こっているのか分かりません:
git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)
modified: file (modified content)
no changes added to commit (use "git add" and/or "git commit -a")
starkers@ubuntu:~/Documents/currentWork/protection_demo$ git add --all
starkers@ubuntu:~/Documents/currentWork/protection_demo$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)
modified: file (modified content)
私が何をしようと、 git commit -am
、git commit -a
ファイルはコミットに追加されません。何か助けは?
たぶん、ジュボブスのコメントは正しいと思います。 「ファイル」はサブモジュールですか?
この行(サブモジュールの追跡されていないコンテンツまたは変更されたコンテンツをコミットまたは破棄する)は、通常のファイルでは表示されません。
これが私がgitステータスから得るものです:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: README.txt
no changes added to commit (use "git add" and/or "git commit -a")
README.txtの後に(サブモジュールの追跡されていないコンテンツまたは変更されたコンテンツをコミットまたは破棄する)および(変更されたコンテンツ)は表示されません。
したがって、gitが推奨することを実行し、サブモジュールのコンテンツで作業する必要がある場合があります。
編集:以前は「git add」と思っていました。問題を解決できましたが、今はできないと思います。
私も同じ問題を抱えていました。私の個人的な "aha"は、以前に追跡.gitリポジトリファイルをサブフォルダーに追加していたため、サブモジュールとして表示されていたことです。サブフォルダー内の.gitを削除した後、残りのフォルダーはルートフォルダー内の1つの.gitファイルの一部として問題なく結合されました。私はサブモジュールについてさえ知りませんでしたので、これは誰かにも役立つでしょう。
3つの方法でファイルを追加できます
git add filenamewithpath
を使用しますgit add .
を使用します一度にすべてのファイルを追加し、このコマンドを使用してコミットメッセージを書き込むことができます
git commit -a -m 'your commit message'
これが適切かどうかはわかりませんが、LinuxとWindowsを切り替えるときに同じ問題が発生しました。 Windowsでは大文字と小文字が区別されないため、1つのWEB.configと別のweb.configの2つのファイルがありましたが、混乱しているようです。コミットしたファイルの名前を変更し、元の名前に戻し、再度コミットしたところ、問題がないようです。
同じ問題がありましたが、理由はわかりませんが、.hファイルがコミットされませんでした。
それで、私はそれを名前を変更しました、これは元の削除され、gitに関する限り新しいものを作成しました。次に、これらの変更をコミットしました。 Gitは幸せでした。
その後、名前を変更しました。再びgitはコミットしてよかったです。
なぜこれが起こったのか説明できませんが、少なくとも修正されました。
みんな!多分それは誰かを助けるでしょう、私の場合、gitはファイルを追加してコミットしたくなかったのです。なぜなら、私はgitファイルを含まない深くネストされたフォルダーからコミットして追加しようとしたからです。ルートフォルダーに戻ると、簡単に追加してコミットしました。
私はこれと同じエラーがありました:
fatal: Cannot update paths and switch to branch 'develop' at the same time.
次にgit status
:
$ git status
warning: LF will be replaced by CRLF in .gitmodules.
The file will have its original line endings in your working directory.
On branch develop
Your branch is up-to-date with 'Origin/develop'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: .gitmodules
new file: submodule_dir
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
(commit or discard the untracked or modified content in submodules)
modified: submodule_dir (modified content)
およびgit diff
表示:
$ git diff
diff --git a/somedir b/somedir
--- a/somedir
+++ b/somedir
@@ -1 +1 @@
-Subproject commit some-commit-hash
+Subproject commit some-commit-hash-dirty
問題は、サブモジュールリポジトリにまだ存在しないブランチを追加しようとしたことでした。
git reset .
これでうまくいきました。含まれている(変更されたコンテンツ)ファイルをコミットする準備ができているすべてのファイルのステージングを解除する
それはちょうど私の昨日の男に起こった、私の場合、理由は私が私のプロジェクトのサブディレクトリからgitを呼び出そうとしたためでした。次に、「git add --all」を使用して問題を解決しました。また、上の適切なディレクトリに移動したところ、問題も解決しました。
しかし、私が得られなかったのはなぜですか?なぜ世界でgitステータス、そしてgit --allコマンドがサブディレクトリから機能していたのですか? .-。
それが役に立てば幸い=)
別のオプションは、同じファイルがstashにあり、現在のコピーと競合していることです。
このような場合は、 git stash drop
-stashを削除し(ファイルが競合している場合)、変更したファイルをインデックスに追加できるようにします。
このようなことが私に起こりました。私が何をしても、ファイルは変更されたように見えました。差分を見ると、前回のコミットで行ったように変更されました。初めてコミットした後でも、ファイルは常に変更されているように見えました。最後にファイルを削除しました。削除をコミットしました。2つのファイルを削除したように見えました。次に、ファイルを再度追加しました。今まで見たことのない奇妙なこと。