Git

コミット済みのフォルダをGit管理下から削除し、.gitignoreの設定を反映させる方法

今回は、CarthageやPodsの成果物をコミット済みだけど、やっぱり、.gitignoreを反映させて、GitHub管理下から関連フォルダを削除する方法を紹介していきます。

今回は、CarthageやPodsの成果物をコミット済みだけど、やっぱり、.gitignoreを反映させて、GitHub管理下から関連フォルダを削除する方法を紹介していきます。

.gitignoreしたかったのに忘れていて、コミットしてしまった…。最初はCarthageやPodsの成果物も全て、Git管理下に置く予定だったけど、やっぱり、チームの方針で外すことになった。

など、ある時はないでしょうか?

実は、.gitignoreに記述しても、既にプッシュ済みのファイルやフォルダの設定は反映されません。なので、Gitからファイルやフォルダを削除せずに、Git管理下からだけ外すという処理をしていく必要があります。

.gitignoreに、CarthageとPodsの記述を完了させてから、下記の処理を実行して下さい。ちなみに、 .gitignoreの生成はGitHubのテンプレートを使うと便利です。

1. Git管理対象からフォルダを外すコマンド

git rm -r --cached 外したいフォルダ名

最初に、上記コマンドを打つことで、Git管理から外すことができます。git rmとは、Gitの管理下にあるファイルやフォルダを削除するGitコマンドになります。-— cachedを入れないと、ファイルそのものが削除されるので、注意!

git rm -r --cached Carthage
git rm -r --cached Pods

例えば、Carthageのフォルダを外したかったら、上記のコマンドを入力します。Podsフォルダも、同じですね。

2. 反映させる

git add --all
git commit -m "ここにコミットメッセージ"
git push -u origin master

余談ですが、CocoaPods・Carthageでインストールした成果物は、管理下に含めるべきかという議論は、この記事で見ることができます。.gitignoreするかどうかは、個人もしくはチームの判断によるでしょう。