今起こっている問題
gulp.jsやluxy.jsを導入する際、npm installすると、node_modulesディレクトリが自動で追加される。
このnode.modulesフォルダがとんでもない容量があるらしく、githubにあげることが躊躇われる。
(と調べてる過程で出てきた)
解決策 | .gitignoreファイルを作ればok
gitignoreというファイルを設定しておけば、gitが無視してくれるようなので、設定してみようと思う。
エンジニアの先輩に聞いたら、大規模開発では最初に設定したあとはほぼいじらないとのことなので、個人開発で導入したい人以外は特に調べる必要も無いのかも。
前提
私の環境
% sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.7
BuildVersion: 19H524
gitignoreの作り方
手順
①.gitignore
という名前のファイルを作る(touchでもvimでもなんでも)
②.gitignoreファイル内に、node_modules/
を記載して保存
③ターミナルでgit add .
してみる
④$ git status
でnode_modulesが無視されてるか確認
⑤無視されてたらここでcommitして完了。
無視されてなかったらキャッシュを削除するコマンド $ git rm -r --cached node_modules
を叩く
⑥ ④からも一回やってみる。できてたらok
⑦もしできてなかったら.gitignoreが反映されない!キャッシュ原因でないときは?
を参考にするといいかも。
参考記事たち
Qiita: .gitignoreに記載したのに反映されない件
でも毎回.gitignore編集するのだるいよね
プロジェクト事にgitignore作るのだるいなーと思ってたのでUser/ディレクトリ配下にgitignoreデフォでできる設定とかいろいろ調べてやってみた。
けど私は失敗した&前述のようにエンジニアの先輩いわく一度いじったらあとはほぼいじる機会が無いみたいなので、まぁいっかと思って結局やってないです。
一応やったことだけ以下に残してます。
①ターミナルを開く
②gitの初期設定が済んでない人は済ませる
参考記事: Mac Git 初期設定
//gitのバージョンを確認
% git --version
git version 2.24.3 (Apple Git-128)
//.sshディレクトリを作成
% mkdir ~/.ssh
mkdir: /Users/yk_h/.ssh: File exists
//.sshディレクトリの下にconfigファイルを作成
% touch ~/.ssh/config
//*chmod はファイル or ディレクトリに対する権限を設定するコマンド。
//パーミッションはディレクトリは700、ファイルは600である必要があるらしい。
% chmod 700 ~/.ssh
% chmod 600 ~/.ssh/*
//xattr コマンドでMacの拡張ファイル属性(extended attributes)、
//いわゆるアットマークが付いてるのを削除できる
% xattr -cr ~/.ssh
ssh configファイルの設定をする
vimでconfigファイルを開く
//ここはターミナル入力
% vi ~/.ssh/config
vimでconfigファイルが開けたら以下をコピペ
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
ServerAliveInterval 15
ServerAliveCountMax 30
AddKeysToAgent yes
UseKeychain yes
IdentitiesOnly yes
:wqコマンドでvimからエグジットできます
私はこの記事:GitのSSH鍵設定をする
をみながらついでにgithubをpushするときに毎回聞かれて面倒だったSSH鍵を省略できる設定を追記しました
Host github
HostName github.com
User git
Port 22
identityFile ~/.ssh/github_id_rsa
UseKeychain yes
AddKeysToAgent yes
まだSSHが省略できるかはチェックしてないです
gitディレクトリ,.gitignoreファイルを作成
gitディレクトリの作成
% mkdir -p ~/.config/git
ignoreディレクトリの作成
mkdir ~/.config/git/ignore
gitignoreファイルの作成&編集(gitディレクトリに移動するしてから、vimで開いた)
git % vi ignore/.gitignore
以下を記述して、:wqでエグジット
.DS_Store
node_modules/
エラー出現
node.modulesがあってgithubにあげたくないプロジェクトディレクトリに移ってプロジェクトをgit add.してみた
% git add .
fatal: cannot use /Users/yk_h/.config/git/ignore as an exclude file
ふざけんなよ。
一応エラー文でググったんだけど、解決方法がわからなかった。(参照した記事とかはここら辺gitignore_globalを作成とその際に出たエラー
ので、一回ignoreごと削除してみる。
さっきのgitディレクトリに移って、ignoreを削除
git % rm -rf ignore
プロジェクトファイルに戻る
% git add .
問題なくaddできた。
でもこれ結局moduleごとaddされてんじゃない?わからんー
giboっていうツールで.gitignoreファイルの自動生成ができるらしい
このQiita記事: giboでgitignoreを自動生成する
をみながら導入してみる。
//①Homebrewをアプデする
% brew update
//②Homebrewでgiboをインストール
% brew install gibo
// ③giboをアプデする
% gibo update
// ④giboのバージョンを確認
% gibo version
gibo 2.2.3 by Simon Whitaker <sw@netcetera.org>
https://github.com/simonwhitaker/gibo
giboのインストール完了。
giboの基本コマンド
//giboが対応している環境を表示
% gibo version
//giboのバージョンとか使えるコマンドとか基本情報の確認?
% gibo ls
gibo 2.2.4 by Simon Whitaker <sw@netcetera.org>
https://github.com/simonwhitaker/gibo
Fetches gitignore boilerplates from https://github.com/github/gitignore
・・・ update Update list of available boilerplates
version Display current script version
//ヘルプを表示
% gibo help
//文例が保存されているディレクトリ名を表示 ※文例を自分で修正可能
$ gibo root
giboの使い方
NodeのプロジェクトでエディタはVS Codeの場合。
% cd ~/.gitignoreファイルを作成したいリポジトリ
gibo dump Node VisualStudioCode >> .gitignore
らしい。
なるほどよくわからん。
でも
% gibo dump Node > .gitignore
でとりあえずNodeは入れてみた。
まだnode.modulesフォルダがaddされてる問題
プロジェクトファイルでgit add .してみたらやっぱりnode.modulesフォルダはaddされる..なぜ..
参考記事
↓なんかサブコマンドの作り方とか書いてあって面白かった
https://cameong.hatenablog.com/entry/2020/07/06/182845