2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【21.03.27~03.31成功!】gitignoreを導入する

Last updated at Posted at 2021-03-27

今起こっている問題

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鍵を省略できる設定を追記しました

~/.ssh/config
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でエグジット

..gitignore
.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を自動生成する
をみながら導入してみる。

terminal.terminal
//①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

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?