マスターから git clone
をしてリモートリポジトリからプロジェクトをクローンした。
この時に不要なファイル削除をしてその結果も細かくプッシュ、プルリクしようと思ったので、その時のことをまとめる。
ファイル内の追記や削除ではなく、ファイルそのものを削除したときのステージングにこの方法を参考にして欲しい。
#ブランチをきる
$ git checkout -b remove_admin/data
新たなブランチを作成する。
git checkout -b ブランチの名前
で新たなブランチの作成をする
git branch
でブランチを確認できる。
$ git branch
master
* remove_admin/data
この時に自動で作ったブランチに git checkout
されているようになっている。
ファイルの削除とステージング
$ git rm -r admin/data
該当のファイルはdataディレクトリの中にあったがdataディレクトリも不要だったのでまとめて削除した。
-r
オプションでディレクトリごと削除する。
$ git rm $(git ls-files --deleted)
このコマンドで削除したファイルをステージング対象にする。
ちなみに私はfishシェルを利用しているということや --deleted
オプションが利用できなかったので下記のコマンドを利用した。
$ git ls-files --deleted | xargs git rm -f
git status
でステージングされているか確認
$ git status
On branch remove_admin/data
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: admin/data/monthly_mails.coffee
しっかりステージングされていた。ちなみに、git rm -r
で削除したdataの中には .coffee
のファイルが入っていた。
##ブランチにプッシュ
まずは、コミットをする
$ git commit -m "remove_data/mails.coffee"
その後作成したブランチにプッシュする
$ git push origin remove_admin/data
省略
* [new branch] remove_admin/data -> remove_admin/data
しっかり作成したブランチに削除したファイルがプッシュできていた。
あとはリモートリポジトリでプルリクエストをするだけである。