Git / GitHubを使用したファイルの削除


115

まず、私はGitを初めて使用します。

Finderを使用して、Macのローカルにある多数のファイルを削除しました。削除したファイルを現在のブランチに表示しないようにしたいのですが、表示されます。

インデックスを更新するコマンドを知っているGitユーザーはいますか?


回答:


226

これはあなたが望むことをするためのより簡単な方法だと思います:

git add . -A 

その後、あなたはただやります:

git commit -m "removed some files"

上記のとおり。


ありがとうございました。そして、私はbash上記を行うためにエイリアスを書いたところです。すごい。
ザック

12
-Aフラグは何をしますか?
Kim Prince

1
@KimPrince -によるとkernel.org、「-A --all -uと同じですが、<filepattern>インデックスに加えて、作業ツリー内のファイルは、新しいファイルを見つけることを意味に対してだけでなく、ステージング変更されたコンテンツと一致します。作業ツリーに存在しないファイルを削除します。」
j08691

3
@KimPrince git help add-A、他のすべてのスイッチの意味とリストを示します。
Marcin Orlowski、2013年

1
これは、削除されたファイルを削除するだけではありません。ディレクトリで変更されたすべてのファイルを追加するため、これは実際には満足のいく答えではありません。
アレックス

19

あなたはまだ「追跡」されている削除されたファイルを見ることができます:

git ls-files --deleted

ブランチからファイルを削除するには、次のようにします。

git ls-files --deleted -z | xargs -0 git rm

からman git-rm

インデックスから、または作業ツリーとインデックスからファイルを削除します。git-rmは、作業ディレクトリからのみファイルを削除しません。(作業ツリーからのみファイル13を削除し、それをインデックスに保持するオプションはありません。それを行う場合は、/ bin / rmを使用してください。)

最後に、「削除」をコミットするには、次のようにします。

git commit -m "removed some files"

次に、変更をコミットする必要がありますgit commit -m "removed some files"
James Polley

17

これが前回の回答以降にgitに追加されているかどうかはわかりませんが、使用しただけです

git add -u
git commit -m "Removed some files"

同じことを達成するために。


これはリストされているユースケースで機能しますが、これはファイルの削除を追加するだけではありません。何らかの方法で変更されたすべてのファイルを追加するので、これが唯一の変更でない限り、これは通常、削除されたすべてのファイルを削除するための良い方法ではありません。
アレックス

2
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch deletefile.name' --prune-empty --tag-name-filter cat -- --all
git commit -m "Removed deletefile.name"
git push origin master --force

deletefile.nameを削除するファイルに置き換えます。詳細な説明については、https: //help.github.com/articles/remove-sensitive-dataの記事をご覧ください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.