はじめに
🧑💻 Git や LabEx の初心者ですか? Git のクイックスタート コースから始めることをお勧めします。
Git は、開発者がコードベースの変更を追跡できる人気のあるバージョン管理システムです。ただし、時々、リポジトリの履歴からファイルを完全に削除する必要があります。この実験では、Git の履歴からファイルを削除するプロセスを案内します。
This tutorial is from open-source community. Access the source code
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
🧑💻 Git や LabEx の初心者ですか? Git のクイックスタート コースから始めることをお勧めします。
Git は、開発者がコードベースの変更を追跡できる人気のあるバージョン管理システムです。ただし、時々、リポジトリの履歴からファイルを完全に削除する必要があります。この実験では、Git の履歴からファイルを削除するプロセスを案内します。
API キーやパスワードなどの機密情報を含むファイルを誤って Git リポジトリにコミットしたとしましょう。このファイルは決してコミットすべきではなかったことに気づき、リポジトリの履歴から完全に削除したいと思います。ただし、単にファイルを削除して変更をコミットしても、リポジトリの履歴からは削除されません。このファイルは以前のコミットでもアクセス可能であり、セキュリティ上のリスクを引き起こす可能性があります。
この実験を完了するには、GitHub アカウントの Git リポジトリ git-playground
を使用します。このリポジトリは https://github.com/labex-labs/git-playground.git
のフォークから来ています。このリポジトリには、決してコミットすべきではなかった file1.txt
という名前のファイルが含まれています。file1.txt
をリポジトリの履歴から削除するには、次の手順に従ってください。
git clone https://github.com/your-username/git-playground
cd git-playground
git config --global user.name "your-username"
git config --global user.email "your-email"
git rm --cached --ignore-unmatch file1.txt
git commit -m "Remove sensitive file1.txt"
file1.txt
のすべてのインスタンスを削除します。git filter-branch --force --index-filter "git rm --cached --ignore-unmatch file1.txt" --prune-empty --tag-name-filter cat -- --all
git push origin --force --all
これらの手順を完了すると、file1.txt
はリポジトリの履歴から完全に削除され、git log --remotes
を実行した後、file1.txt
のコミットは表示されません。
機密情報が誤ってコミットされた場合、Git の履歴からファイルを削除することは必要な手順です。この実験では、git filter-branch
コマンドを使用して、Git の履歴からファイルを削除するプロセスを案内しました。リポジトリの履歴を書き換える際は注意が必要です。なぜなら、意図しない結果を招く可能性があるからです。