8

2週間前、パスワードを使用してアプリケーションの構成をコミットしましたが、あまり役に立ちません。コミット履歴からファイルを削除して、再コミットされないようにするにはどうすればよいですか?

パスワードが含まれているため、すべてのコミットツリーからファイルを削除したいと思います。

4

4 に答える 4

19

あなたはできる

git rm myConfigFile
echo myConfigFile > .gitignore
git add .gitignore
git commit -m "from now on, no more myConfigFile"

もう1つの極端なアプローチ(特にリポジトリをリモートのリポジトリにプッシュしている場合は危険です)は、そのファイルをそのリポジトリの履歴から完全に削除することです。

git filter-branch --index-filter 'git update-index --remove myConfigFile' HEAD

(注意して使用し、最初にバックアップを使用する)

gitの履歴から機密ファイルを削除するにはどうすればよいですか?という質問には、その機密トピックに関する詳細があります。

このプロセスの問題は2つあります。

  1. リポジトリがすでに複製されている場合、機密情報が他のすべてのリポジトリから実際に「削除」されることを保証することはできません。
  2. この後、他のユーザーが最新の変更をプルダウンしようとすると、早送りではないため、変更を適用できないことを示すメッセージが表示されます。
    これを修正するには、既存のリポジトリを削除して再クローンを作成するか、マンページRECOVERING FROM UPSTREAM REBASEの「 」の下にある手順に従う必要があります。 どちらの場合も、機密情報が「静かに」置き換えられたり消去されたりすることはありません...git-rebase
于 2009-12-07T19:19:36.540 に答える
1
cp my-config config.tmp
git rm my-config
git commit -m 'removed config'
mv config.tmp my-config
echo my-config >> .gitignore
git add .gitignore
git commit -m 'ignore config'
于 2009-12-07T19:19:56.773 に答える
0

無視を使用:http://github.com/guides/ignore-for-git

于 2009-12-07T19:18:40.130 に答える
0

ファイル名を.gitignoreファイルに追加します。

リンク

于 2009-12-07T19:19:02.300 に答える