11# .gitignore  
22
3- 既存のリポジトリをいくつか見て回っていると、よく .gitignore という名前のテキストファイルを目にします。簡単にいうと、これはリポジトリに載せないファイルの名簿です。
3+ 既存のリポジトリをいくつか見て回っていると、よく ` .gitignore `  という名前のテキストファイルを目にします。簡単にいうと、これはリポジトリに載せないファイルの名簿です。
44
55## .gitignore のはたらき  
66
7- .gitignore が持つ効果については実例を見た方が分かりやすいかも知れません。まず、リポジトリに .gitignore という名前(最初にピリオドをつける)の空のテキストファイルを作成し、そこに " secret.md"  とだけ書いて変更をコミットしてしまいましょう。
7+ .gitignore が持つ効果については実例を見た方が分かりやすいかも知れません。まず、リポジトリに ` .gitignore `  という名前(最初にピリオドをつける)の空のテキストファイルを作成し、そこに ` secret.md `  とだけ書いて変更をコミットしてしまいましょう。
88
99![ ] ( https://md.trap.jp/uploads/upload_afb00e41b7c969a1b867d51803f6f36d.png ) 
1010
11- さらに secret.md という名前の空のテキストファイルを作成して編集します。
11+ さらに ` secret.md `  という名前の空のテキストファイルを作成して編集します。
1212
1313![ ] ( https://md.trap.jp/uploads/upload_c42709799b91b87e60ae444c6c013b8a.png ) 
1414
1515すると、変更を保存していつまで待っても『ステージされている変更』に secret.md の表示が出ず、コミットができなくなりました。エクスプローラータブでファイルの一覧を見直してみると、どうも secret.md だけファイル名の表示が暗くなっています。
1616
1717![ ] ( https://md.trap.jp/uploads/upload_2c8d8f54e90d1c77f9668bdfdc7a0855.png ) 
1818
19- これは先ほど作った .gitignore の効力です。リポジトリに .gitignore というファイルが含まれていると、Git は** そこに名前が書かれたファイルをすべてコミットから除外** します。" secret.md"  と書かれたファイル .gitignore をリポジトリに追加したことで、secret.md は** 作業ディレクトリの中に存在するにも拘らずリポジトリには含まれなくなった** のです。
19+ これは先ほど作った .gitignore の効力です。リポジトリに .gitignore というファイルが含まれていると、Git は** そこに名前が書かれたファイルをすべてコミットから除外** します。` secret.md `  と書かれたファイル .gitignore をリポジトリに追加したことで、secret.md は** 作業ディレクトリの中に存在するにも拘らずリポジトリには含まれなくなった** のです。
2020
2121ちなみに、.gitignore はただファイル名を列挙するだけでなく、ディレクトリ名を書いてそこに含まれるファイルを丸ごと除外したり、同じ種類の(たとえば共通の拡張子を持つ)ファイルをいっぺんに除外したりすることもできます。
2222
@@ -47,19 +47,19 @@ node_modules
4747
4848### モジュールの除外  
4949
50- ここからは Web 開発の多少込み入った話になります。2 行目の node_modules は Node.js を用いた開発において ** パッケージがインポートされるディレクトリ **  です。
50+ ここからは Web 開発の多少込み入った話になります。2 行目の node_modules は Node.js を用いた開発において ** パッケージがダウンロードされるディレクトリ **  です。
5151
52- Web 分野に限らず、開発とは必ずしも全てを独力でなんとかする類のものではなく 、先人が作ったプログラムのまとまり「パッケージ」をお借りしてシステムに組み込みながら進めていくことが一般的です。そのために Web 上からパッケージをインポートして管理するパッケージマネージャと呼ばれるソフトウェアがプログラミング言語ごとに存在します 。ちなみに、パッケージマネージャは Git 同様に代表的な CLI ソフトウェアの一種です。
52+ Web 分野に限らず、開発とは必ずしも全てを独力でなんとかするのではなく 、先人が作ったプログラムのまとまり「** パッケージ** 」をお借りしてシステムに組み込みながら進めていくことが一般的です。そのために Web に公開されているパッケージをダウンロードして管理する「 ** パッケージマネージャ ** 」と呼ばれるソフトウェアがプログラミング言語ごとに存在します 。ちなみに、パッケージマネージャは Git 同様に代表的な CLI ソフトウェアの一種です。
5353
54- パッケージマネージャの基本的な役割は「** 依存関係リストファイルに記されたパッケージをインポートする ** 」ことです。依存関係リストファイルとは必要なパッケージを決まった形式の箇条書きで記したテキストファイルのことです 。
54+ パッケージマネージャの基本的な役割は「** パッケージリストファイルに記されたパッケージを指定の場所にダウンロードする ** 」ことです。パッケージリストファイルとは、必要なパッケージの名前や ID が決まった形式で列記されたテキストファイルのことです 。
5555
56- Node.js を用いた開発では npm(Node Package Manager)というパッケージマネージャが存在して、以下のようにコマンドを打てば「package.json に記されたパッケージをダウンロードして node_modules ディレクトリに追加」してくれます。
56+ Node.js を用いた開発では npm(Node Package Manager)というパッケージマネージャが存在して、package.json というパッケージリストファイルを参照しながらパッケージを管理します。 以下のようにコマンドを打てば「package.json に記されたパッケージをダウンロードして node_modules ディレクトリに追加」してくれます。
5757
5858``` sh 
5959npm install  #  Node パッケージのインストール
6060``` 
6161
62- つまり、npm とリポジトリの中の package.json さえあれば各環境で必要なパッケージをインポートして揃えることができます 。とすれば、その保存先である node_modules ディレクトリは必ずしもリポジトリに含める必要はないということになります。
62+ つまり、npm とリポジトリの中の package.json さえあれば各環境で必要なパッケージをダウンロードして揃えることができます 。とすれば、その保存先である node_modules ディレクトリは必ずしもリポジトリに含める必要はないということになります。
6363
6464:::tip 外部モジュールのとても雑な例え話
6565
@@ -69,9 +69,9 @@ npm install  # Node パッケージのインストール
6969-  貴重品 -> ** オリジナルのソースコード** 
7070-  現地調達可能なもの -> ** 外部パッケージ** 
7171-  現地 -> ** システムが動く環境** 
72- -  現地調達するもののメモ -> ** 依存関係リストファイル ** 
72+ -  現地調達するもののメモ -> ** パッケージリストファイル ** 
7373
74- 対応させるならこんな感じでしょうか。外部パッケージは ** システムが動く環境で / パッケージマネージャが / 依存関係リストファイルをもとに調達してくれる **  ものなので ** リポジトリに含める必要がない**  という要点をおさえるために旅にたとえてみました。また行きたい。
74+ 対応させるならこんな感じでしょうか。外部パッケージは ** システムが動く環境で / パッケージマネージャが / パッケージリストファイルをもとに調達してくれる **  ものなので ** リポジトリに含める必要がない**  という要点をおさえるために旅にたとえてみました。また行きたい。
7575:::
7676
7777というわけで .gitignore に node_modules と書かれています。node_modules はディレクトリ名なので、ここに含まれるパッケージを一薙ぎに除外してしまおうという寸法です。
@@ -102,7 +102,7 @@ npm install  # Node パッケージのインストール
102102
103103## 環境変数と機密情報の秘匿  
104104
105- traP Gitea 上のリポジトリは部員に対してのみ公開されますが、GitHub などのホスティングサービスを使う場合は Web 上に公開された Git リポジトリで開発を進めていくことも珍しくありません。それどころか、GitHub の無料会員は数年前までプライベートリポジトリを作ることが出来ませんでした 。
105+ traP Gitea 上のリポジトリは部員に対してのみ公開されますが、GitHub などのホスティングサービスを使う場合は Web 上に公開された Git リポジトリで開発を進めていくことも珍しくありません。それどころか、GitHub の無料会員は 2018 年までプライベートリポジトリを作ることが出来ませんでした 。
106106
107107実行中のシステムが必要とする情報のうち、API トークン(パスワード)など外部に悪用されないように秘匿しておきたい文字列もよく環境変数として扱われます。実際に環境に依存するか否かはさておき、.gitignore の恩恵でリポジトリに含まれなくなった .env はこうした機密情報を置いておくにはうってつけの場所です。
108108
0 commit comments