それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

npm でインストール済み一覧を整理しアンインストール。

インストール済み一覧を表示する。

インストールの結果を表示するには depth

takuya@~$ npm list -g --depth=0
/usr/local/lib
├── hubot@2.19.0
├── jshint@2.9.5
├── jslint@0.11.0
├── less@2.7.2
├── npm@5.6.0
├── uglify@0.1.5
├── uglify-js@3.1.3
├── uglifyjs@2.4.11
├── undefined@0.1.0
├── update@0.7.4
└── upgrade@1.1.0

インストール一覧を見れる。

インストールした結果の一覧を見ることで、インストールしたものを明示的に消せる。楽。

npm list で検索結果が。。。

ふつうに一覧を検索すると大変なことに。

npm -g list

インストールされてるパッケージ結果が、、、すげぇ多すぎ。 インストール一覧を見るとゴチャゴチャ

  │ │ │   └── os-tmpdir@1.0.2 deduped
  │ │ ├─┬ figures@1.7.0
  │ │ │ ├── escape-string-regexp@1.0.5 deduped
  │ │ │ └── object-assign@4.1.1 deduped
  │ │ ├── lodash@4.17.4 deduped
  │ │ ├── mute-stream@0.0.6
  │ │ ├── pinkie-promise@2.0.1 deduped
  │ │ ├── run-async@2.3.0 deduped
  │ │ ├── rx@4.1.0
  │ │ ├─┬ string-width@1.0.2
  │ │ │ ├── code-point-at@1.1.0 deduped
  │ │ │ ├─┬ is-fullwidth-code-point@1.0.0
  │ │ │ │ └── number-is-nan@1.0.1 deduped
  │ │ │ └── strip-ansi@3.0.1 deduped
  │ │ ├── strip-ansi@3.0.1 deduped
  │ │ └── through@2.3.8 deduped
  │ ├── minimist@1.2.0 deduped
  │ ├─┬ mkdirp@0.5.1
  │ │ └── minimist@0.0.8
  │ ├─┬ npmlog@2.0.4
  │ │ ├── ansi@0.3.1
  │ │ ├─┬ are-we-there-yet@1.1.4
  │ │ │ ├── delegates@1.0.0
  │ │ │ └── readable-stream@2.3.3 deduped
  │ │ └─┬ gauge@1.2.7
  │ │   ├── ansi@0.3.1 deduped
  │ │   ├── has-unicode@2.0.1
  │ │   ├── lodash.pad@4.5.1
  │ │   ├── lodash.padend@4.6.1
  │ │   └── lodash.padstart@4.6.1
  │ └── object-assign@4.1.1 deduped
  ├── titleize@1.0.0

えっと、ドレをインストールしたっけ

深さを指定して検索すると何を入れたか解るので助かったのでメモ。

npm list -g --depth=0

不便なので、alias を作っておく

alias npm_installed='npm list --depth=0 '

npm_installed -g 

アンインストールしてみた。

takuya@~$ npm -g uninstall  pug
removed 57 packages in 0.706s

pug だけで 60 近いパッケージに依存してる。さすがパッケージ地獄のnpm だった。

インストールでえらーになったときに困った。

どのパッケージがぶっ壊れたのかを探してて地獄を見た。

npm で gitbook をインストールした

takuya@~$ npm -g install gitbook gitbook-cli
npm WARN deprecated ignore@3.1.2: several bugs fixed in v3.2.1
npm WARN deprecated tough-cookie@2.2.2: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
/usr/local/bin/gitbook -> /usr/local/lib/node_modules/gitbook-cli/bin/gitbook.js
/usr/local/bin/gitbook -> /usr/local/lib/node_modules/gitbook/bin/gitbook.js

> fsevents@1.1.3 install /usr/local/lib/node_modules/gitbook/node_modules/fsevents
> node install

[fsevents] Success: "/usr/local/lib/node_modules/gitbook/node_modules/fsevents/lib/binding/Release/node-v59-darwin-x64/fse.node" is installed via remote
+ gitbook-cli@2.3.2
+ gitbook@3.2.3
added 1312 packages in 36.976s

2つ入れるのに、ほぼまっさらな状態から、1312 パッケージですか。。多いな。

npm インストールでぶっ壊して復旧に1時間近くかかったのでメモ

git log --graph でマージ状況がよくわかる。

git のコミット履歴を線にして表示してくれる。

 git log --pretty=format:'%h %s' --graph

出力結果はコレ

このような形で、ブランチの履歴がよくわかる。。

* 9504829 say hello world
* daa290b さぎょうちゅうー
* 7a385a4 ハローワールド
* 2bf15e1 サンプルブランチでの更新
* 460e6a0 ローカルブランチでコミット
* d5e9ee2 作ったブランチへコミット
*   4928e4d Merge branch 'test' into 'master'
|\
| * 85a29cc test
|/
* dba3ada add README

オプションの有無で色々

git log --graph
git log --pretty=format:'%h %s' --graph
git log --graph --pretty=oneline 

~/.gitconfig に書いておくと便利

[alias]
  graph= log  --graph

参考資料

Git - リビジョンの選択

http://blog.toshimaru.net/git-log-graph/

gitで作業中の内容をブランチ(リモート)として扱う。

作業内容をぱぱっとブランチにまとめる。

最初から目的別のブランチ切って作業できるほど人は賢くない。

アレコレ触ってるうちに、ライブラリに欠陥を見つけたり、作業目的とは違うファイルもついでに編集したりとか。 そういう、細々としたコミットをコミットに積み重ねるのも面倒くさい。

たとえば、コミット内容をカテゴリ別にステージングするときに git add -p を叩いてファイルを見ながら目的部分だけ拾って comitt / push って意外と効率が悪い。

stash してあとで考えようとしてもstash から戻すときにマージ考えるのも面倒だし。

その状態でいったん保存したい。

ステージングされてないコミットがまだまだあるんだけど、その状態でいったん保存したい。

帰宅時間が来たぞ帰ろう。とりあえず作業内容をブランチにしてみることにした。

あるブランチで作業をしていて、会議時間前になったし、そろそろ一段落させるか。帰宅時間が近づいたけど今日の進捗なしはこまるな−ってときに。

ファイルが更新状態になってる。

takuya@sample$ echo '<?php phpinfo();?>' > info.php
takuya@sample$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.

Changes not staged for commit:

    modified:   info.php

ブランチを作る

takuya@sample$ git checkout -b working
M   info.php
Switched to a new branch 'working'

ブランチをコミットしてリモートpush する

ブランチをコミットする。

takuya@sample$ git commit -m 'さぎょうちゅうー' info.php
[working daa290b] さぎょうちゅうー
 1 file changed, 1 insertion(+)

ブランチをまるっとプッシュする

takuya@sample$ git push origin working
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 533 bytes | 533.00 KiB/s, done.
Total 6 (delta 2), reused 0 (delta 0)
To example:takuya/sample.git
 * [new branch]      working -> working

状態を確認する。

takuya@sample$ git branch -a
  master
* working
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/working

作業中の状態を保存できた

これであとはまた別のことを始めたら良いわけですね。ブランチに進捗あります。

定時に上がって、家のPCで仕事の続きができますね!