Gitはフォルダ自体を管理対象にはできない。空のフォルダを設定する手順
2019/02/24
Gitでフォルダを監視対象にする手順
Gitはファイルを管理するがフォルダは管理できない
Gitで管理対象にする、しないの設定が記述されているファイルは .gitignoreです。
.gitignoreで無視フォルダの中の特定のファイルを除外「!(否定文)」を使う場合の注意点
上記の記事では、「.gitignore」を利用して管理対象外にしたフォルダの中のファイルを管理対象にする方法について解説しました。
ですが、Gitでは、フォルダ自体を管理対象にすることができません。
そのため、例えば、
・ログを出力するフォルダをあらかじめ作っておきたい
・ダウンロードするファイルを保管するフォルダを作っておきたい
と思っても、その中にファイルが入っていないと Gitで管理対象にすることができないのです。
そんなときは、
「.gitkeep」というファイルを作成し
そのファイルをフォルダの中に設置し
そのファイルを .gitignoreに記載する
と言う手順でフォルダを Gitの管理下に置く、という方法を採る必要があるのです。
Gitで空のフォルダを管理対象にする手順
手順1.「.gitkeep」というファイルを作成する
「.gitkeep」というファイルを作成します。
ファイルの中身は空(0バイト)のファイルで OKです。
手順2.Gitの管理下に置きたいフォルダの中に「.gitkeep」ファイルを置く
Gitの管理下に置きたいフォルダの中に「.gitkeep」ファイルを設置します。
手順3..gitignoreに対象ファイルの設定を記述する
.gitignoreに、作成した .gitkeepを管理対象にする設定を記述します。
記述例としては以下の通りです。
1 2 3 |
!/tmp/download_file/ /tmp/download_file/* !/tmp/download_file/.gitkeep |
「/tmp/download_file/」というフォルダを作成し、それを管理対象にしたい、と言う想定です。
手順4..gitignoreをサーバにアップしてコミットする
.gitignoreをサーバにアップしてコミットします。
この際、Gitにはキャッシュが設定されている場合があるため、キャッシュをクリアする必要があります。
Gitで空のフォルダを管理対象にする手順についての解説
「手順1」の「.gitkeep」というファイルは、Gitで管理する際の慣例のファイル名とも言える名称のため、多くの方が「.gitkeep」を使っています。
ですが、Gitの仕組み上はファイル名は何でも問題ありません。
CakePHPの場合は、空のフォルダには拡張子なしの「empty」という空のファイルが置いてありますので、CakePHPの場合は「empty」というファイル名に合わせる、ということも一つの方法と言えます。
「手順3」の .gitignoreの書き方については下記に記事を書いていますので、それを参考にしてください。
「tmp」や「vendor」フォルダなど、管理対象外にしているフォルダの中のファイルを管理対象にする場合は、正しく設定するには考慮する点があります。
.gitignoreで無視フォルダの中の特定のファイルを除外「!(否定文)」を使う場合の注意点
「手順4」の .gitignoreを変更した場合の設定の反映は、Gitが持っているキャッシュをクリアしないと正しく反映されない場合がよくあります。
キャッシュのクリア方法を下記の記事にしていますので参考にしてください。
.gitignoreを更新しても反映されないときは「git rm -r --cached .」でキャッシュを削除
Git関連の記事
Gitはフォルダ自体を管理対象にはできない。空のフォルダを設定する手順.gitignoreを更新しても反映されないときは「git rm -r --cached .」でキャッシュを削除
.gitignoreで無視フォルダの中の特定のファイルを除外「!(否定文)」を使う場合の注意点
Gitで「fatal: Authentication failed for 'https://example.com/git_repositories/example.git/'」のエラーが出た場合の対処方法の一つ
Gitで基本的なデプロイ(push、pullで本番公開)環境を作る手順解説
その他の「git」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
CentOS環境に ntpdをインストールして自動的に時刻を取得して合わせる設定にする
VirtualBoxに構築した CentOSの環境の時計がずれているとき、ntpdをインストールし、時計を合わせる方法を解説。NTPサーバを指定する方法や ntpdを自動起動する設定も解説。
-
chromedriver.exe – ディスクがありませんと出てSeleniumの設定が上手くいかない
Selenium WebDriverを使ってChromeを自動操作する仕組みを作る際、chromedriver.exeを利用しますが、ディスクがありません、というエラーが発生する場合があります。その対処方法を解説します。
-
SyntaxHighlighterを導入してソースコードを見やすくしてみました
PHP、HTMLなどのソースコードをブログで紹介するとき、SyntaxHighlighterを利用することで見やすく提供することが出来ます。
-
WordPress、Webサイトの表示高速化!画像を軽くする基本的な考え方
画面表示の高速化には画像のファイル容量を小さくする方法があります。ツールを使わなくても小さくするための基本的な考え方を解説します。
-
日本語は2バイト文字?3バイト文字?
日本語は2バイトという理解でしたが、UTF-8では事情が違います。その説明です。
-
さくらサーバのmb_send_mailでメール送信時にmalformed header from script ‘xxx.php’: Bad header: xxxのエラーが
さくらインターネットのレンタルサーバからPHPのmb_send_mail()関数を利用してメールを送信するとInternal Server Errorが発生。その原因は、メールアドレスが登録されていないこと。
-
Webサイト公開時に重複コンテンツを排除する.htaccessのリダイレクトの設定のまとめ
サイトを公開する際にはURLの正規化は必須です。正規化とは何かを解説し、.htaccessに設定すべきリダイレクトの設定を具体的に説明します。
-
PythonでMySQLへの接続ライブラリMySQL-pythonの簡単インストール方法
PythonはMySQLに接続するライブラリは別途インストールが必要。なのでMySQL-pythonライブラリのインストール方法とサンプルスクリプトで動作検証までを解説。
-
ロリポップからX-Serverに引越し。サーバの月額費用が増えても求めた理由は?
ロリポップからX-Serverに引越すその理由とは?SEOの観点からも少しでもサーバレスポンスが早いサーバが求められロリポップでは限界を感じたからです。
-
ブラウザのキャッシュを活用するの対策!広告バナーを消して表示を高速化
あなたのサイトが遅いのはバリューコマースのバナーではないですか?バリューコマースのバナーを外すだけでmod_deflateとmod_expiresを設定するより効果があります!