eng-note

エンジニアノート

技術関連の自分用メモ書きブログ

Git関連のTips

参考URL GitHubの複数アカウントを使い分けるならSSHよりhttpsの方がいいんじゃね?という話 - Qiita

  • ssh鍵の設定方法
  • ssh鍵を使い分ける方法
  • .ssh/configの書き方

コマンドメモ

リモートブランチ指定のブランチ作成
$ git checkout -b feature/new_branch_name origin/remote_branch_name
コミット指定のブランチ作成
$ git checkout hash12345 -b feature/new_branch_name
一時退避
$ git stash
$ git stash list
$ git stash apply stash@{0}
コミットをまとめる
$ git rebase -i HEAD~2

コメントを編集するならsquash(s)
そのままでいいならfixup(f)

後からユーザー名とメアドを全部変える

参考:Gitで過去のコミットのAuthor名とメールアドレスを変更する方法 - soHTaro.com

$ git filter-branch -f --env-filter \
  "GIT_AUTHOR_NAME='username'; \
   GIT_AUTHOR_EMAIL='meado@gmail.com'; \
   GIT_COMMITTER_NAME='username'; \
   GIT_COMMITTER_EMAIL='meado@gmail.com';" \
  HEAD

git-new-workdir

参考:cocos2d-xやるのにgit-new-workdirを覚えた for Mac - Qiita

$ cd ~/bin
$ wget https://raw.githubusercontent.com/git/git/master/contrib/workdir/git-new-workdir
$ chmod +x git-new-workdir
$ ln -s ~/bin/git-new-workdir /usr/local/bin/

開発基礎環境の構築

VirtualBox

以下のURLからインストール
Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracle

Vagrant

以下のURLからインストール
Download - Vagrant by HashiCorp

ベースBoxリスト
A list of base boxes for Vagrant - Vagrantbox.es

CentOS7環境初期化

Boxの追加

$ vagrant box add centos7 https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box

初期化して起動

$ cd ~/Workspace
$ vagrant init centos7
$ vagrant up

CentOS7の初期設定

$ sudo timedatectl set-timezone Asia/Tokyo
$ sudo localectl set-locale LANG=ja_JP.UTF-8
$ sudo localectl set-keymap jp106
$ sudo systemctl disable firewalld

nginxのインストール

$ sudo yum install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
$ sudo yum install --enablerepo=nginx nginx
$ sudo systemctl enable nginx

ホストOSから接続確認

以下の行のコメントを外して vagrant reload

config.vm.network "private_network", ip: "192.168.33.10"

ホストOSから http://192.168.33.10/ にアクセスしてNginxのページが表示されれば成功。

※reloadするとエラーが起きる場合は下記参照。原因不明だけど1.8.6にしたらエラーが出なくなりました。 qiita.com

Pythonの開発環境構築

Mac

  1. brewのインストール
  2. brew install pyenvでpyenvのインストール
  3. pyenvでpythonのインストール
  4. pipのインストール
    • curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python
  5. PyCharmなど使いたいIDE、エディタのインストール

CentOS7 + nginx (仮)

# dependencies install
sudo yum -y install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel git patch

# pyenv install
git clone https://github.com/yyuu/pyenv.git ~/.pyenv

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

# python install
pyenv install 3.5.2
pyenv global 3.5.2
pyenv rehash

Macの初期設定

基本設定

  • ディスプレイ
    • 擬似解像度を最大に変更
  • ライブ変換を無効にする
  • アクセシビリティ > ポインタコントロール > トラックパッドオプション > 3本指でドラッグを有効にする
  • システム環境設定 > トラックパッド
    • ポイントとクリック
      • 調べる&データ検出を無効にする
      • タップでクリックを有効にする
      • 軌跡の速度を速めにする (右から三番目くらい)
    • スクロールとズーム
      • 全部チェックを入れる
    • その他のジェスチャ
      • 全部チェックを入れる
  • システム環境設定 > キーボード
    • スクロールバークリックした場所へジャンプ
  • システム環境設定 > 一般
    • F1、F2などのキーを標準のファンクションキーとして使用を有効にする
  • Dockとメニューバー
    • Dockとメニューバー
      • サイズと拡大を調整 (半分くらいのサイズ)
      • ウィンドウをアプリケーションアイコンにしまうを有効
      • Dockを自動的に表示/非表示を有効
      • 最近使ったアプリケーションをDockに表示を無効
    • 時計
      • 秒を表示
      • 日付を表示
    • バッテリー
      • バッテリーの割合を表示
    • Dockからいらないものを消す
  • Finder
    • 環境設定
      • 新規Finderウィンドウでユーザーフォルダを表示
      • サイドバーに表示する項目を好みに
      • すべてのファイル名拡張子を表示を有効
      • 拡張子を変更する前に警告を表示を無効
      • 検索実行時、現在のフォルダ内を検索
    • 表示
      • タブバーを表示
      • ステータスバーを表示
      • 表示オプション > ライブラリフォルダを表示
  • インストール

シェル設定

vi ~/bin/ssh-iterm-setting

#!/bin/zsh
# ~/bin/ssh-iterm-setting

set_color() {
  local HEX_BG=$1
  local OPACITY=$2

  local BG_R=`echo $HEX_BG | sed 's/../0x&,/g' | awk -F "," '{printf("%d",$1 * 257)}'`
  local BG_G=`echo $HEX_BG | sed 's/../0x&,/g' | awk -F "," '{printf("%d",$2 * 257)}'`
  local BG_B=`echo $HEX_BG | sed 's/../0x&,/g' | awk -F "," '{printf("%d",$3 * 257)}'`

  /usr/bin/osascript <<EOF
tell application "iTerm"
   tell current session of first window
      set background color to {$BG_R, $BG_G, $BG_B} 
      set transparency to "$OPACITY" 
   end tell
end tell
EOF
}

# 接続host名で振り分け
if [[ "$@" =~ stg ]]; then
   # 色・透明度設定
   set_color 330000 0.2 
elif [[ "$@" =~ prod ]]; then
   set_color 333300 0.2
elif [[ "$@" =~ dev ]]; then
   set_color 000033 0.2
fi

ssh $@

set_color 000000 0.2

vi ~/bin/vagrant-iterm-setting

#!/bin/zsh
# ~/bin/ssh-iterm-setting

set_color() {
  local HEX_BG=$1
  local OPACITY=$2

  local BG_R=`echo $HEX_BG | sed 's/../0x&,/g' | awk -F "," '{printf("%d",$1 * 257)}'`
  local BG_G=`echo $HEX_BG | sed 's/../0x&,/g' | awk -F "," '{printf("%d",$2 * 257)}'`
  local BG_B=`echo $HEX_BG | sed 's/../0x&,/g' | awk -F "," '{printf("%d",$3 * 257)}'`

  /usr/bin/osascript <<EOF
tell application "iTerm"
   tell current session of first window
      set background color to {$BG_R, $BG_G, $BG_B} 
      set transparency to "$OPACITY" 
   end tell
end tell
EOF
}

if [[ "$@" =~ ssh ]]; then
   # 色・透明度設定
   set_color 003300 0.2 
fi

vagrant $@

set_color 000000 0.2

vi ~/.bashrc

alias ssh="~/bin/ssh-iterm-setting"
alias vagrant="~/bin/vagrant-iterm-setting"

vi ~/.bash_profile

source ~/.bashrc

権限設定

$ chmod 755 ~/bin/ssh-iterm-setting
$ chmod 755 ~/bin/vagrant-iterm-setting