2022-04-30

既存の git プロジェクトに .gitignore を追加していらないファイルを削除する

 Takeaway

  • gitignoreがないプロジェクトや設定に不足がある場合がある
  • .gitignoreを良い感じに作って追加したい
  • .gitignoreを配置してcommit
    • git add .gitignore
    • git commit -m "add .gitignore"
  • .gitignoreのルール通りにリポジトリを綺麗にする
    • git rm -r --cached .
    • git add .
    • git commit -m "cleanup repo based on .gitignore"
  • githubとかで管理している場合はpushしておく
    • git push origin main
 

.gitignoreを良い感じに作って追加したい

gitはバージョン管理するのに便利で,GitHubやGitLabを使ってプロジェクト管理するのは研究プロジェクトを行う上で便利である.一方で何も考えずに使っていると一時ファイルなどゴミファイルも大量にトラッキングすることになってしまう.本当に一人・一端末でやっている分には部屋が汚いとかそういうレベルの話しどうでも良いものの,複数端末からやったり他の人に見せたりコミットしてもらうとこのゴミが悪影響を及ぼす可能性がある.皆で使う研究室は綺麗に使う,と同じ論理である.とはいえ,整理整頓できていると余計なリソースを名実ともに節約できるので,一人プロジェクトでも.gitignoreを適切に設定できているとだいぶ幸せになれる.

また,綺麗・汚いという話しだけでなく,.gitignoreを使って管理することにより,トラッキングする意味のないファイルを除外したり,アクセス情報やユーザIDやハッシュ化したパスワードを記載したファイルや認証情報ファイルをうっかり共有してしまう,という事故も防ぐ事に繋がる.

.gitignoreを作る

ゼロから作るのは大変なので先人が整理してくれた資産を有効活用するのが非常に楽である.おすすめは gibo を使う方法か,gitingnore.io を使う方法である.gitをよく使う人やインターネットがない環境で作業することがある人は gibo の方が便利だろう.インターネットに常時繋がっている環境で作業する人は gitignore.io で十分と思う.以降,gitingnore.ioを使った説明を行う

gitignore.ioで作る.gitignore

ブラウザからgitignore.ioにアクセスする.


使うOSを入力する.色々使う人や複数人使うリポジトリの場合は無難に Windows macOS Linux と一通り入れておいて損はない.


エディタを入力する.色々使う人や複数人使うリポジトリの場合は無難に Vim VisualStudioCode Emacs SublimeText などと一通り入れておいて損はない.


最後に,プロジェクトで使う言語やフレームワークなどを入れる.仮に,gitのリポジトリが研究日誌でtxtやmarkdownのみなら特に指定するものはない.WordPressやHugoやunityなどもある.公式のGitHubリポジトリのtemplatesフォルダで,拡張子.gitignoreファイルのファイル名が基本的に対象となる.patch や stack や order なんていうのもあるけど,最初はあまり気にしなくて良い.ここでは仮にWordPressとする.


Create ボタンを押す


できたファイルを .gitignore ファイルとして保存する.


保存後,一応中身を見て記録したい・したくないフォルダ・ファイルに相違ないか確認しておく.特にアプリケーションなどの場合はニーズが個別にあるので見てみる.例えば WordPress はデフォルトではコアファイル群は除外,をlogファイルは除外され,pluginやthemesは含まれることになっている.先頭の#を取り除くとその行を有効/無効の切替ができる.


ちょっと上級者向け gitignore.io

実はブラウザを開く間でもなく,コマンドラインやエディタから直接利用できる.詳しくは公式のCommand Line のドキュメントに書いてある.これを使えば,例えば

gi Windows,macOS,Linux,Vim,VisualStudioCode,Emacs,SublimeText,WordPress >> ./.gitignore
とすれば,同じ物を作成できる.※Windows の場合はコマンドはgiではなくgigとすること

既存リポジトリのお掃除

新しく設置したgitignoreはこれまでcommitされたファイルをいきなり除外しないので,管理対象情報を更新する必要がある.アップデート的なことはできないので,全ファイル管理対象から外して追加,を実施する.

まずは作った.gitignoreをリポジトリに含める.

git add .gitignore
git commit -m "add .gitignore"

次に全ファイル管理対象から外す.

git rm -r --cached .

全ファイル管理対象に再び登録する.再登録だが,.gitignoreが有効になっているので,除外したいファイルは追加されない.

git add .

最後にcommitする.

git commit -m "cleanup repo based on .gitignore"

GitHubやGitLabで管理している人はpushを忘れずに

全部ローカルでやっている人は別として,層でない人はpushを忘れずに.(ブランチ名は適宜読み替えてください)

git push origin main

0 件のコメント:

コメントを投稿

複数ファイルから特定の文字列を含むファイルと行数を調べる

 Takeaway 複数ファイルから特定の文字列を含むファイルと行数を調べたくなることがある コマンドで調べるのが楽だった.しかもgrepだけでできる. grep -rni "string" * Windows で ...