Git 削除は最後のローカルコミットのみをプッシュします

StackOverflow https://stackoverflow.com//questions/21026467

  •  21-12-2019
  •  | 
  •  

質問

Rails プロジェクトのローカル git バージョンに多くの変更を加えましたが、それを失いたくないのですが、その際に誤って ベンダー/バンドル Git 内のフォルダー。

コミットするとすぐに、これを行ったことに気づき、フォルダーに対して git rm を実行し(フォルダーを gitignore に追加し)、再度コミットしました。ただし、バンドルが大きすぎるため、現在はオリジナルをプッシュできません。

必要なもの

  • 行った編集 (および新しいファイル) を保持するにはどうすればよいですか。
  • git 履歴からバンドル フォルダーを削除するとき
  • ディレクトリが大きすぎるため、そのコミットをプッシュしません

ここでソフトリセットのさまざまな方法を探してきましたが、行き詰まっています。

役に立ちましたか?

解決

git reset --soft HEAD~xは、Xがあなたがリセットしたいレビュー数 - 2のリセット数 - 2では、gitignoreファイルにディレクトリを追加し、それを段階領域から削除します。

他のヒント

答えが見つかったと思います:

これはかなり一般的に発生します。誰かが誤って巨大なバイナリファイルを無意味なgit add。でコミットし、どこでも削除したいと思います。おそらく、パスワードを含むファイルを誤ってコミットし、プロジェクトをオープンソースにしたいと思うでしょう。フィルターブランチは、おそらくあなたの歴史全体をスクラブするために使用したいツールです。Passwords.txtという名前のファイルを履歴全体から削除するには、-tree-filterオプションを使用してフィルターブランチを使用できます。

ソース:

git filter-branch --tree-filter 'rm -f /vendor/bundle' HEAD

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top