Doiya’s blog

日々の進捗を書く雑記ブログ(メインはエンジニアやプログラミング関連)

コミットメッセージとgitignore

表題の件で学んだことがあるので、振り返りも兼ねて書きます。

コメットメッセージ

コメットメッセージって「fix:〜」って書くやないですか。このfixの部分をPrefixというらしいんですけど どのように使い分けたらええのか以下の記事に記載があったのでまとめておきます。

qiita.com

Prefix一覧

feat: 新しい機能
fix: バグの修正
docs: ドキュメントのみの変更
style: 空白、フォーマット、セミコロン追加など
refactor: 仕様に影響がないコード改善(リファクタ)
perf: パフォーマンス向上関連
test: テスト関連
chore: ビルド、補助ツール、ライブラリ関連

あと理由づけを以下のように明確にした方が他のメンバーのことを考えると良いらしいです。

✖️chore: hogeを追加

◯chore: ネットワーク通信するため、hogeを追加

gitignore

まずそもそも論、「gitignoreとは何ぞや??」からなんですけど

gitignoreとはGitリポジトリ配下において、管理対象(追跡対象)から外すディレクトリや、ファイルを設定するための仕組みのことです。こちらに記載すると ローカルリポジトリ、リモートリポジトリの両方でのGit管理対象外になります。

ex .DS.Storeの場合

①touch .gitignore #gitignoreファイルを作成

②.gitignoreファイルに.DS.Storeファイルを追記

③git logなどのコマンドを打つと対象から外れていることが確認できると思います。

④ここからコミットメッセージを書いたりプッシュしたりする。

ちなみに.DS.Storeには以下のような情報があり、共有する必要がないのでコミットしないです。

・mac側で作成された独自の形式の隠しファイル
・Finderやリモート上アクセスする全てのフォルダに.DS_Storeそれぞれ作成される
・独自のメタ情報(例えば、フォルダ内のアイコンの位置や表示設定などが保存されているデータ)

ちなみに

うっかり不要なファイルをGitHubなどにプッシュしてしまった場合どうすればいいか??

以下のように対処する。

ex .DS.Storeの場合

①touch .gitignore #gitignoreファイルを作成

②.gitignoreファイルに.DS.Storeファイルを追記

ここまでは一緒です。ただし

既にGit管理しているファイルはただ.gitignoreに追加してもキャッシュが残っているため反映してくれない。そのためキャッシュを削除する必要があります。

以下のように記載します。

③git rm -r --cached .

-r : ディレクトリを再帰的に削除する→下層にあるディレクトリにも適用される

—cached : インデックスからの削除だけを実行する(ワークツリーのファイルは保持する)

④git logなどのコマンドを打つとキャッシュが削除されていることを確認できると思います。

⑤ここからコミットメッセージを書いたりプッシュしたりする。

ここまでするとgithubなどの画面上を確認してみても、不要なファイルが表示されなくなっていると思います。

参考

不要なファイル.DS_Storeを.gitignoreで管理対象外にする - やなぎにっき

pushして.DS_Storeが上がってしまった時の対処法 | CODE CLUB965

Gitにおけるgitignoreを使ったファイルの除外方法 | IT職種コラム