gitレポジトリにというファイルがあるとしますfoo
。
rm
(ではなくgit rm
)で削除されたとします。次に、gitステータスが表示されます。
Changes not staged for commit:
deleted: foo
この個別のファイル削除をどのようにステージングしますか?
私が試した場合:
git add foo
それは言う:
'foo' did not match any files.
gitレポジトリにというファイルがあるとしますfoo
。
rm
(ではなくgit rm
)で削除されたとします。次に、gitステータスが表示されます。
Changes not staged for commit:
deleted: foo
この個別のファイル削除をどのようにステージングしますか?
私が試した場合:
git add foo
それは言う:
'foo' did not match any files.
回答:
Git 2.0.0以降、git add
ファイルの削除もステージングします。
<パススペック>…
コンテンツを追加するファイル。Fileglobs(例:* .c)を指定して、一致するすべてのファイルを追加できます。また、先頭のディレクトリ名(たとえば、dir / file1およびdir / file2を追加するためのdir)を指定して、ディレクトリ全体の現在の状態と一致するようにインデックスを更新できます(たとえば、dirを指定すると、変更されたファイルdir / file1だけではなく、作業ツリーでは、ファイルdir / file2が作業ツリーに追加されますが、ファイルdir / file3も作業ツリーから削除されます。以前のバージョンのGitは削除されたファイルを無視していたことに注意してください。変更されたファイルまたは新しいファイルを追加したいが、削除されたファイルは無視したい。
git rm foo
削除するファイルをステージングするために使用します。(以前に削除されていなかった場合、ファイルシステムからファイルも削除されます。もちろん、以前にチェックインされていたため、gitから復元できます。)
ファイルシステムから削除せずにファイルを削除するためにステージングするには、次のコマンドを使用します。 git rm --cached foo
--cache
フラグを追加して、リポジトリからのみファイルを削除し、ファイルシステムにそのまま残すことができます。
git status | grep 'deleted:' | cut -d':' -f2 | xargs -t -I {} git add -u "{}"
。他の回答は、ファイルの削除を正しくステージングする方法を示しているようです(ただし、削除済みのファイルをステージングする方法は示していません)。ps。xargs
Ubuntu 12.04では、ベースのコマンドが機能しますが、手動で実行git add -u deleted_file.txt
すると機能しません。私のgitは1.7.9.5です
git rm
ファイルシステムからすでに削除されている場合でも、ファイルを削除用に喜んでステージングします。そして、別の回答に対するOPのコメントが示すように、彼らはすでに削除された特定のファイルをステージングしたいと考えていました。
git rm
すでに削除されたファイルをステージングしません。このエラーがスローされます:fatal: pathspec '~.SLDASM' did not match any files
。以下が証明のある画面です:i.imgur.com/cKNKGGe.png i.imgur.com/1p9JdWF.png。最初のスクリーンショットは、2つのファイルが削除され、ステージングされていないことを明確に示しています。2番目のスクリーンショットは、と入力するとgit rm "~$Box.SLDASM"
、このエラーがスローされることを示しています。
使用するのは適切git rm [FILE]
ですが、代わりに使用することもできますgit add -u
。
git-add
ドキュメントによると:
-u-更新
[FILE]に一致するエントリがすでにある場所でのみインデックスを更新します。これにより、作業ツリーと一致するようにインデックスエントリが削除および変更されますが、新しいファイルは追加されません。
-uオプションを使用するときに[FILE]を指定しないと、作業ツリー全体で追跡されているすべてのファイルが更新されます(古いバージョンのGitは、更新を現在のディレクトリとそのサブディレクトリに制限するために使用されていました)。
インデックスが更新され、ファイルが適切にステージングされます。
git add -A .
、すべての変更が追加されます。削除したファイルを1つステージングしたいと思いました。
git add -u FolderWithDeletedFiles/
、それは私が欲しいものをやった、ありがとう
手動で削除したすべてのファイルをステージングするには、以下を使用できます。
git rm $(git ls-files --deleted)
このコマンドにエイリアスをとして追加するには、次のコマンドをgit rm-deleted
実行します。
git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)'
unknown option `deleted)
for /F %I in ('git ls-files --deleted') do git add -u %I
すべての削除済みファイルを追加する
git status -s | grep -E '^ D' | cut -d ' ' -f3 | xargs git add --all
確認するためにチェックに感謝
git status
あなたは行ってもいいはずです
rm <file>
、行うことではなく、むしろgit rm <file>
git version 2.15.2 (Apple Git-101.1)
。
使用できます
git rm -r --cached -- "path/to/directory"
削除されたディレクトリをステージングします。
このコマンドを使用できます
git add `git ls-files --deleted`