特定のファイルだけ、Gitの管理下からを外す方法

f:id:ryoutaku_jo:20190209193700p:plain

【結論】
・外部サービスのアクセスキーなど、
 GitHubにそのまま公開すると、悪用されるケースがある。
 また、投稿される画像データなどがGitの管理下に置かれたままだと、
 投稿をテストする度に、毎回commitをあげる必要が出てくる。

・そういったGitHub上に公開したく無いファイルについては、
 「gitignore」ファイルに記述することで、
 Gitの監視下から外すことが出来る。

・一度監視下に置かれたファイルは、「gitignore」ファイルに記述するだけでなく、
 別途コマンドを実行する必要がある。

【目次】


【本題】

特定ファイルをGitの管理下から外す方法

チーム開発において同期から、「gitignoreファイルに記述したけど、
gitの監視下から消えていない」という相談があったのですが、
理解が浅い部分もあった為、今一度振り返ろうと思い、今回のテーマとしました。

特定ファイルをGitHubに上げたく無いケース

・テストで投稿した画像データなど、アプリケーションの仕様上不要な物

FacebookAWSなどアクセスキーといった外部に漏れることで
 悪用されるリスクが高い情報

gitignoreによる監視ファイルの除外

railsであれば、「rails new」した際に自動で生成される
「.gitignore」というファイルに、監視対象から外したいファイルを
記述することで、変更などを行っても、Gitにトラッキングされることは無くなります。

f:id:ryoutaku_jo:20190209195129p:plain

gitignoreの記述方法

・ファイル名で指定する → 「secrets.yml」
ディレクトリで指定する → 「directory/」
・拡張子で指定する → 「.exe」

既に監視対象のファイル

なお、一度コミットしたファイルについては、
その後.gitignoreに追加したとしてもGitの管理下から外されず、pushされてしまう。

その場合は、ターミナルで

 > git rm --cached ファイル名(ディレクトリ名)

 を実行しGitで管理されないようにする。

例)git rm --cached config/secrets.yml


《今日の学習進捗》

チーム開発:14日目
Facebook認証の続き。
今週のスプリントはタスク詰め込み過ぎたのと、
面談や勉強会など予定も詰め込み過ぎて、
ちょっとオーバーフローしそう・・・


学習開始からの期間 :64日
今日までの合計時間:664h
今日までに到達すべき目標時間:584h
目標との解離:80h
「10,000時間」まで、

残り・・・「9336時間!」