0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ディスクには残しつつ Git のレポジトリからはファイルやディレクトリを削除する方法

Last updated at Posted at 2020-08-21

パスワードが入ったファイルや、本番・テスト環境によってパラメータが違うけれども同じファイル名で保存しないといけないファイルがあったとします。

Git で管理しているものの、間違ってブランチ同士をマージした時にファイルを上書きしてしまうかもしれません。

そんなときは、ローカル・サーバー上でファイルを残しつつ git レポジトリからだけファイルやディレクトリを削除したい場合の方法です。

つまり git rm --cached の説明です。

(実施する回数がレアで、いつも忘れちゃう・・・。)

ステップ解説

STEP 1. gitignore ファイルに対象のファイルを追加する

ローカル・サーバー上にはずっと残しておきたいので、該当するファイルやフォルダを gitignore に追加します。

cd [git レポジトリの場所]
vi .gitignore

STEP 2. git rm -cached コマンドで git レポからは削除する

--cached オプションを加えることで、git レポジトリだけに反映されます。

git rm --cached [ファイル]
git rm --cached -r [ディレクトリ]

あとは普通にコミット & プッシュします

git commit -m "メッセージ"
git push [リモート名] [ブランチ名]

おまけ

僕の作業用の手順書をここにおいておきます。

僕のコピペ用です。

通常、この作業をするときは、サーバー上での話なので、直接サーバーから作業します。

入れないといけない、メールアドレス、ファイル名、git commit メッセージ、push のときのブランチ名などは 省いています

サーバー上で Apache ユーザーとして行う場合

# サーバーからは初コミットかもしれないので、ユーザーを設定する
sudo -u apache git config --global user.name "Nginx User"
## メールアドレスを設定する
sudo -u nginx git config --global user.email nginx@

# git の場所
cd 
# クリーンなレポジトリか確認する
sudo -u apache git status
# .gitignore編集
sudo -u apache vi .gitignore
# 削除ファイルを入れる
sudo -u apache git rm --cached
# 削除ディレクトリを入れる
sudo -u apache git rm --cached -r 
# コミットメッセージをいれる
sudo -u apache git commit -m ""
# ブランチ名をいれる
sudo -u apache git push origin 

サーバー上で Nginx ユーザーとして行う場合

# サーバーからは初コミットかもしれないので、ユーザーを設定する
sudo -u nginx git config --global user.name "Apache User"
## メールアドレスを設定する
sudo -u nginx git config --global user.email apache@

# git の場所
cd 
# クリーンなレポジトリか確認する
sudo -u nginx git status
# .gitignore編集
sudo -u nginx vi .gitignore
# 削除ファイルを入れる
sudo -u nginx git rm --cached
# 削除ディレクトリを入れる
sudo -u nginx git rm --cached -r 
# コミットメッセージをいれる
sudo -u nginx git commit -m ""
# ブランチ名をいれる
sudo -u nginx git push origin 

以上

参考
https://stackoverflow.com/questions/1143796/remove-a-file-from-a-git-repository-without-deleting-it-from-the-local-filesyste

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?