Corredor

ウェブ、プログラミングの勉強メモ。

Git

git pull 時に --set-upstream-to とか言われるのを回避するコマンドを作る

git pull した時に --set-upstream-to しろみたいなコメントが出て、git pull 出来ない時がある。 $ git pull There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details…

ローカルでも GitHub でお馴染みの「使用言語割合」を表示する「github-linguist」

GitHub でリポジトリを開くと、画面上部にリポジトリ内で使われているプログラミング言語の割合が表示される。例えばこのブログのアセットを管理しているリポジトリだとこんな感じ。 GitHub - Neos21/hatena-blogs: @neos21/hatena-blogs : はてなブログのテ…

色々な設定ファイルにプロキシ設定が含まれていないか確認するスクリプト

自分は、社内ネットワーク内で仕事をする時と、インターネットに直接繋いで作業する時とで、設定ファイルを使い分けている。.bashrc や .gitconfig、.npmrc などのファイルだ。 社内ネットワークで仕事する場合は、これらのファイルに社内ネットワーク向けの…

Wercker を使ってみた感想

Oracle Container Pipelines として取り込まれた CI・CD ツールである Wercker を使ってみたので紹介。 wercker 参考:Oracle Blogs 日本語のまとめ: [Cloud] New in Developer Cloud - Fn Support and Wercker Integration Wercker ってどんなもの?僕が感…

GitHub リポジトリの特定ディレクトリ以下をダウンロードする方法

ある GitHub リポジトリの、src/ ディレクトリ以下のファイルのみダウンロードしたいな、といった時のやり方。 コレは、svn コマンドが提供する、svn export というコマンドを使うと実現できる。 master ブランチからダウンロードする時 例えば、 https://gi…

Heroku に git push しようとしたらユーザ名とパスワードを問われ続ける問題の解決法

Windows10 にて。 ある日、いつものように Heroku に向けて git push しようとしたら、以下のように Username と Password を問われた。 $ git push heroku master Username for 'https://git.heroku.com': Password for 'https://git.heroku.com': remote: …

素振り環境として package.json の用意と Git 管理を一気に始めるシェルスクリプト

普段、npm パッケージを使った素振り環境を作るために、 mkdir して cd して、 npm init -y して package.json を調整して、 git init して .gitignore を作って、 git commit --allow-empty で初回コミットを打つ、 みたいなことをやっているのだが、コレを…

複数の Git ブランチを一括で削除するシェル関数

以前からなんとかならないかなーと思っていた、複数のローカルブランチを一気に消すコマンドを作った。いつ使うかというと、主に feat/ で始まるローカルブランチを一気に消したい時とか。 ほとんど以下のコードを参考にした。 参考:shellutils/git-rmbranc…

このファイルに変更を入れたのはいつ?誰?を知るための git log コマンド

Git

ファイル単位でコミット履歴を追いたい時に。 git log コマンドの後ろにファイルパスを書いてやれば、それだけでファイルやディレクトリ単位での絞り込みができる。 $ git log './src/index.html' -p オプションを渡すと、コードの差分も表示される。 $ git …

Windows GitBash のプロンプト表示が遅いのをなんとかしたかった

Windows GitBash のプロンプト表示がやたらと遅い。何のコマンドも打たずに Enter を押しただけでも、何か表示がつっかえる。 何が原因かと思って調べてみたところ、どうも GitBash デフォルトのプロンプト内に設定されている __git_ps1 という関数が遅いよ…

新規ブランチの Git Push 時に --set-upstream オプションを省略する

Git

Git のちょっとした手間を省く小技。 リモートにも存在する master ブランチから、ローカルで $ git checkout -b feat/new-branch というように新規ブランチを生成し、それを git push しようとすると、 $ git push fatal: The current branch feat/new-bran…

ウェブサイトの GitHub リポジトリから最新のコミット ID を取得し、カラーコードに利用してウェブサイトに表示する

なんのこっちゃ?というタイトルになってしまったが、Hail2u の ながしまきょう さんがブログで話していたアイデア。 コミットのSHA-1ハッシュ……先頭6文字はそのまま色として扱えることに思い至った。 例えばこのウェブサイトのリポジトリーでは、v8.9.4が#a…

Bitbucket API を使って複数のリポジトリからファイルをダウンロードしてきて比較してみる

Bitbucket という、GitHub ライクでプライベートリポジトリが持てるホスティングサービスを使っている。 この Bitbucket にも API が用意されていて、今回やりたかったことに使えそうだったので、試しにやってみた。 Bitbucket API リポジトリからファイルを…

Git の別ブランチのコミットを取り込むには : git cherry-pick

Git

Git のちょっと発展的な使い方の話。 develop ブランチから派生した feat/hoge ブランチにて作業をしていたが、途中で feat/piyo ブランチを作り直したくなった。 単にブランチ名を変更するだけで良ければ、git branch -m を使って、 $ git branch -m feat/h…

GitHub のパスワードを変えたので、パスワード入りで git clone していたリポジトリの設定を修正する

ある日 GitHub を開くと、ページヘッダに「テメェのパスワードは HaveIBeenPwned に登録されてるから変えときな」といったメッセージが表示されていた。「HaveIBeenPwned」というのは、どこかから漏洩したメールアドレスやパスワードの情報をデータベース化…

Git 管理しているプロジェクトをエクスポートする

Git

Git 管理していて、編集中のプロジェクトがあったとして、node_modules/ などを含めずにエクスポートしたり、Zip ファイルにまとめるなどしたい。そんな時のコマンドを2つ紹介する。 管理対象外ファイルを除外して Zip ファイルにまとめたい : git archive …

プロジェクトフォルダごとに設定した Git のコミットユーザ情報を確認する

Git

プロジェクトごとに Git のコミットユーザを変える必要があり、各プロジェクトフォルダで以下のようにユーザを設定していたりする。 $ git config user.name "NeoLocal" $ git config user.email "neo-local@example.com" # この情報はプロジェクトフォルダ…

git clone したディレクトリにすぐ移動する

git clone と同時に、作成されたディレクトリに cd したいなーと思っていたので調べてみた。 以下のように basename を利用して、直前のコマンドの引数を $_ で取得するとうまくいく。 $ git clone http://example.com/example.git && cd $(basename $_ .git…

Jenkins と Bitbucket のブランチ指定入り Push 連携がうまくいかなかったのでやり方を変えた

Jenkins の Declarative Pipeline ジョブを使って、Bitbucket リポジトリをポーリングし、「ビルドするブランチ」を develop ブランチに指定したジョブを作っていたのだが、どうも feature ブランチに対する Push 時にもこのジョブが反応して、feature ブラ…

git reset を元に戻すための git reflog コマンド

Git

ファイルの変更はそのままにコミットを戻す $ git reset HEAD^ (--soft) や、ファイルの変更ごとコミットをなくす $ git reset --hard HEAD^ を叩いた後に、それをまた戻す方法があった。git reflog というコマンドを使うと、--hard を使って完全に取り消し…

Git のクライアントサイドフックを使ってコミット時に自動フォーマットなどを行う

Git には Hooks という仕組みがあり、git commit コマンドを実行した時とかに自動実行するスクリプトを設定できる。 参考:Gitのフックの説明と挙動の検証 - Qiita … フックの種類 今回はこの仕組を使って、pre-commit のタイミング、つまり git commit コマ…

Git Diff で日本語の文章も綺麗に差分を出す

git diff コマンドで日本語の文章も綺麗に差分を出す方法が紹介されていたので試してみた。 参考:Gitで日本語長文のdiffをとる方法 - Qiita コマンドは以下。 $ git diff --word-diff-regex=$'[^\x80-\xbf][\x80-\xbf]*' --word-diff=color この正規表現は…

git diff を1文字単位で出力する

エンジニアのためのGitの教科書 実践で使える!バージョン管理とチーム開発手法作者: 株式会社リクルートテクノロジーズ,株式会社リクルートマーケティングパートナーズ,河村聖悟,太田智彬,増田佳太,山田直樹,葛原佑伍,大島雅人,相野谷直樹出版社/メーカー: …

特定のコミット ID のコミット情報を調べるなら git show

Git

【改訂新版】Gitポケットリファレンス作者: 岡本隆史,武田健太郎,相良幸範出版社/メーカー: 技術評論社発売日: 2016/12/01メディア: 単行本(ソフトカバー)この商品を含むブログを見る git show というコマンドで、特定のコミット ID を指定して、そのコミ…

Mac 初期化直後に Git コマンドが使えない時は

macOS High Sierra パーフェクトマニュアル作者: 井村克也出版社/メーカー: ソーテック社発売日: 2017/10/21メディア: 単行本この商品を含むブログを見る Mac の初期化状態だと、ターミナルで git コマンドが使えず、以下のようなエラーが出る。 $ git xcrun…

Git の全履歴からコードを検索する

Gitポケットリファレンス作者: 岡本隆史,武田健太郎,相良幸範出版社/メーカー: 技術評論社発売日: 2012/07/10メディア: 単行本(ソフトカバー)購入: 7人 クリック: 103回この商品を含むブログ (26件) を見る Git の全履歴の中から、ある文言を含むコードを…

.npmignore と .gitignore の併用に関する仕様

Node.js超入門作者: 掌田津耶乃出版社/メーカー: 秀和システム発売日: 2017/08/09メディア: 単行本この商品を含むブログを見る Gitが、おもしろいほどわかる基本の使い方33作者: 大串肇,久保靖資,豊沢泰尚出版社/メーカー: エムディエヌコーポレーション(Md…

Git 管理中のファイルを .gitignore に追加したあと追跡しないようにする

Git

エンジニアのためのGITの教科書 (WEB Engineer’s Books)作者: 株式会社リクルートテクノロジーズ,株式会社リクルートマーケティングパートナーズ,河村聖悟,太田智彬,増田佳太,山田直樹,葛原佑伍,大島雅人,相野谷直樹出版社/メーカー: 翔泳社発売日: 2016/01/…

GitHub に公開するリポジトリでパスワードなどを管理しないようにする方法

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)作者: 大塚弘記出版社/メーカー: 技術評論社発売日: 2014/03/20メディア: 単行本(ソフトカバー)この商品を含むブログ (23件) を見る 前回までに紹介した FTP 関連の npm パッケージの中…

git-completion がエイリアスでも効くようにしてブランチ名をタブ補完する

【改訂新版】Gitポケットリファレンス作者: 岡本隆史,武田健太郎,相良幸範出版社/メーカー: 技術評論社発売日: 2016/12/01メディア: 単行本(ソフトカバー)この商品を含むブログを見る [改訂第3版]Linuxコマンドポケットリファレンス作者: 沓名亮典出版社…