単純に git rm --cached Pods しても、過去の履歴には Pods フォルダが残り、プッシュする容量は減りません。
プッシュする容量を減らすには、Pods フォルダを追加したコミットにさかのぼって履歴を改変する必要があります。
まず、履歴を確認しましょう。(なお、$ はシェルのプロンプトなので、打ち込む必要はありません。)
$ git log --oneline --graph --all
* 9c60d13 (HEAD -> develop) 最新のコミット
* (略)
* 3aff086 (main) Initial Commit
また、コミットされてない変更がないことをご確認ください。(変更がある場合は、コミットまたはスタッシュしましょう。)
$ git status
On branch develop
nothing to commit, working tree clean
今回の場合、Initial Commit の時点で Pods フォルダが含まれていたとのことなので、すべての履歴を書き換えることになります。vim が使えるなら、git rebase -i --root すると次のような画面が現れますので、最初の pick を edit に書き換えて保存します。(が、vim が苦手な人はやらないでください。)
pick 3aff086 Initial Commit
pick (略)
pick 9c60d13 最新のコミット
# Rebase 9c60d13 onto 59b86fa (3 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# (以下略)
代わりに、次のコマンドを実行すると、自動的に最初の pick を edit に書き換えて rebase します。(打ち間違えないようにコピペ推奨。)
$ GIT_SEQUENCE_EDITOR="sed -i -re '1s/pick/edit/'" git rebase -i --root
Stopped at 3aff086... Initial Commit
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
ここで履歴の改変を行います。今回の場合、Pods フォルダを履歴から削除します。
$ git rm -r --cached Pods
rm 'Pods/...'
次に改変した履歴をコミットしますが、普通に git commit --amend だとまた vim が起動してしまうので、--no-edit をつけてコミットメッセージはそのままでコミットします。
$ git commit --amend --no-edit
[detached HEAD xxxxxxx] Initial Commit
(以下略)
そして、残りの履歴をやり直します。
$ git rebase --continue
Successfully rebased and updated refs/heads/develop.
Successfully 〜 と表示されれば成功ですが、もしも失敗したらコメント欄にエラーメッセージを貼り付けてご相談ください。
念のために元のソースと比較しておきましょう。この際、普通に git diff だと削除したファイルの中身がすべて表示されてしまうので、--stat オプションをつけてファイル名だけ表示させると良いでしょう。なお、9c60d13 というのは元の最新のコミットのハッシュ値になります。
$ git diff --stat 9c60d13
Pods/... | xxx -
xxx file changed, xxx deletion(-)
Pods フォルダの中身だけが削除されていることをご確認ください。
以上で作業中のブランチ (develop) の rebase は完了ですが、今回はその他に main ブランチがありますね。これを新しい Initial Commit を指すようにするには、まず新しい履歴を確認して、
$ git log --oneline
xxxxxxx (HEAD -> develop) 最新のコミット
yyyyyyy (略)
zzzzzzz Initial Commit
いったん main ブランチを削除して、新しいコミット (zzzzzzz のところに表示されているもの) に付け替えると良いでしょう。
$ git branch -D main
Deleted branch main (was 3aff086).
$ git branch main zzzzzzz
もう一度履歴を確認して、Initial Commit の前に (main) と表示されれば成功です。
$ git log --oneline
xxxxxxx (HEAD -> develop) 最新のコミット
yyyyyyy (略)
zzzzzzz (main) Initial Commit