GITは、ワークスペースファイルを直接変更して変更し、GITフィルターブランチ(履歴を書き換えて、変更、修正を残す)を再提出する(以前のコミットを使用して新しいコミットを作成するために新しいコミットを作成する)を使用してGIT Rebaseを使用してGitフィルターブランチ(履歴を書き直します)を使用して再提出(推奨されない、修正の痕跡を残します)を含む、コミット内のファイルを削除する複数の方法を提供します。コミットされていない不要なファイル。
コミット内のファイルをエレガントに削除する方法は?
コードライブラリにコミットした後、コードライブラリに存在しないファイルが見つかったことがありますか?または、機密情報を提出しましたか?パニックに陥らないでください。GITは、この問題を解決するさまざまな方法を提供しますが、どの方法を選択するかは、達成したい効果と歴史に付随する重要性に依存します。歴史を簡単に書き直すことは良い考えではありません。あなたが何をしているのかよくわからない限り、チームワークの混乱につながる可能性があります。
最も直接的なものについて話しましょうが、通常は最良の解決策ではありません。ワークスペースファイルを直接変更してから再送信します。それはシンプルで粗雑ですが、それは修正の痕跡を残し、複数の人が一緒に働くならば、それは災害です。
外科的処置のように、不要なファイルを正確に削除し、歴史への影響を最小限に抑えるいくつかのより細かいアプローチに飛び込みましょう。
git filter-branch
の力を理解します(注意して使用してください!)
git filter-branch
履歴を書き換えるためのGitの最も強力なツールであり、ファイルの削除を含む歴史的なコミットですべてを変更できます。ただし、これによりgit履歴が書き換えられます。コードをリモートリポジトリにプッシュした場合、チームに大きなトラブルを引き起こす可能性があります。あなたが非常に確信していて、バックアップを持っていない限り、簡単に試してはいけません。
たとえば、すべてのコミットからsecret.txt
という名前のファイルを削除する必要があるとします。
<code class="bash">git filter-branch --index-filter 'git rm --cached --ignore-unmatch secret.txt' --prune-empty --tag-name-filter cat -- --all</code>
このコマンド行は、すべてのコミットを介して反復し、 secret.txt
を削除し、空のコミットをクリアし、最後にタグを更新します。 --ignore-unmatch
ファイルが存在しないためエラーを回避します。しかし、これはまったく新しい履歴を作成し、あなたのローカルリポジトリは真新しいスタンドアロンの支店になります。リモートリポジトリの履歴をカバーするリモートリポジトリにプッシュ( git push --force
)を強制する必要があります。
より安全な方法: git revert
とgit rebase -i
直接書き換え履歴と比較して、これらの2つの方法はより安全で、チームワークにより適しています。
git revert
、以前の履歴を変更しない以前のコミットを取り消すために新しいコミットを作成します。 Commitで追加されたファイルを削除する場合は、最初にgit revert <commit-hash></commit-hash>
そのコミットを元に戻してから、必要に応じてコードを再送信できます。今回は、送信されるべきではないファイルを除外することを忘れないでください。この方法はきれいできれいで、歴史を台無しにしません。
git rebase -i
使用すると、コミット履歴をインタラクティブに変更できます。これを使用して、コミットを削除したり、コミット情報を変更したりできます。これにより履歴も変更されるため、慎重にする必要があり、他の枝に影響を及ぼさないように地元の枝で操作することが最善です。インタラクティブなリベースモードに入った後、削除するファイルのコミットラインの前にpick
変更して、 edit
、ワークスペースを変更し、ファイルを削除してからgit add .
git commit --amend
変更を提出し、最後にgit rebase --continue
、リベースプロセスを継続するために継続します。これはgit filter-branch
よりも洗練されていますが、それでも慎重な操作が必要です。
ベストプラクティス: .gitignore
の重要性
問題を回避する最良の方法は、それらを防ぐことです。プロジェクトの先頭に.gitignore
ファイルを作成し、一時ファイル、中間ファイルをコンパイルした、機密情報など、追跡すべきではないすべてのファイルをリストします。
最後に、Gitの力は、あなたの仕事を台無しにする力があることを意味することを忘れないでください。履歴の変更を実行する前に、リポジトリをバックアップし、使用しているコマンドを完全に理解してください。不必要な手間を避けるために、シナリオに合った方法を選択してください。 Gitのさまざまなコマンドを習得することによってのみ、バージョンコントロールの世界で簡単になります。
以上がgitでコミットファイルを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソフトウェア開発におけるGitとGithubの役割と機能は、コードと共同開発を管理することです。 GITは、コミット、ブランチ、マージ関数を通じてコードバージョンを効率的に管理し、GitHubはPullRequestや問題などのコードホスティングやコラボレーションツールを提供してチームのコラボレーション効率を向上させます。

GitHubは、開発者がコードを発見、共有、および寄付するための優先プラットフォームです。 1)Pythonプロジェクトなどの検索関数を使用して、特定のコードベースを見つけます。 2)リポジトリとプッシュコードを作成して、世界中の開発者と共有します。 3)オープンソースプロジェクトに参加し、フォークとプルレクエストを通じてコードを提供します。

Gitはバージョン制御システムであり、GithubはGitに基づくオンラインプラットフォームです。コード管理とチームのコラボレーションにGitとGithubを使用するための手順には、次のものが含まれます。1。gitリポジトリの初期化:gitinit。 2.一時的なストレージエリアにファイルを追加:gitadd。 3.変更を送信:gitcommit-m "initialcommit"。 4。Githubリポジトリに関連する:gitremoteaddoriginhttps://github.com/username/repository.git。 5.コードをgithubにプッシュ:gitpush-uoriginmaste

GitHubは、ソフトウェア開発とコラボレーションに広範囲に影響を及ぼします。1。これは、コードセキュリティと開発の柔軟性を向上させるGITの分散バージョン制御システムに基づいています。 2。PullRequestなどの機能を通じて、チームのコラボレーション効率と知識の共有を改善します。 3。githubactionsなどのツールは、開発プロセスを最適化し、コードの品質を向上させるのに役立ちます。

GitHubでコードを共有、管理、および寄稿する方法には次のものがあります。1。リポジトリとプッシュコードを作成し、ReadMeとライセンスファイルを書き込みます。 2。ブランチ、タグ、マージリクエストを使用してコードを管理します。 3.リポジトリをフォークし、PullRequestの貢献コードを変更して送信します。これらの手順を通じて、開発者はGitHubを使用して開発効率とコラボレーション機能を改善することができます。

Gitは分散バージョン制御システムであり、GithubはGitベースのコラボレーションプラットフォームです。 GITはバージョン制御とコード管理に使用され、GitHubはコードレビューやプロジェクト管理などの追加のコラボレーション機能を提供します。

Gitは分散バージョン制御システムであり、GithubはGitに基づいたオンラインプラットフォームです。 GITはバージョン制御、支店管理、合併に使用され、GitHubはコードホスティング、コラボレーションツール、ソーシャルネットワーキング機能を提供します。

Gitはバックエンドバージョン制御システムであり、GithubはGitに基づくフロントエンドコラボレーションプラットフォームです。 GITはコードバージョンを管理し、GitHubはユーザーインターフェイスとコラボレーションツールを提供し、2つは開発効率を向上させるために協力します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
