gitでたまに使うコマンド集
たまにしか使わなくて、よく忘れるコマンドをメモしていく。
リモートリポジトリ系
# リモートリポジトリの変更 git remote set-url origin <新しいリポジトリURL> # リモートリポジトリの追加 git remote add hogehoge <追加したいリポジトリURL> # リモートリポジトリの削除 git remote rm hogehoge # リモートリポジトリ名の変更 git remote rename <old_name> <new_name>
やりなおし系
# 間違ってaddしたやつを取り消す git reset config/environments/development.js # commitを打ち消し(逆向きのcommitをする) git revert コミットのハッシュ値 # 直前のcommitをなかったことにする # --hardオプション:コミット取り消した上でワークディレクトリの内容も書き換えたい場合に使用。 git reset --hard HEAD^ # 特定のコミットまで戻す git reset --hard #{コミットハッシュ} # 間違ってcommitしたものをステージ前まで戻す git reset --soft HEAD^ git reset HEAD # 直前のコミットの差分を見る git diff HEAD^ HEAD # ステージしたファイルと最新コミットの差分を見る git diff --staged # 直前のコミットメッセージを修正する git commit --amend
タグ系
# タグを作る git tag TAGNAME # タグでブランチ切る git checkout -b 1.6 refs/tags/v1.6 # タグ一覧 git tag # タグの削除 git tag -d TAGNAME # タグのpush git push origin TAGNAME # リモートのタグを消す git tag -d TAGNAME git push origin :TAGNAME
その他
# コミット間のファイル差分を出力する # --statは編集量表示 / --name-onlyはファイル名のみ出力の意味 git diff --stat --name-only <コミットID A> <コミットID B> # 大文字小文字の違いもファイル変更と認識させる # Macで作業する時用 git config core.ignorecase false # git add . で deletedが反映されない時 git add -u .
Rubyでメソッドの定義場所を確認する
gem pry を使うと、$で簡単に確認できる
$ "".present? # From: /home/kinosuke/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7/lib/active_support/core_ext/object/blank.rb @ line 23: # Owner: Object # Visibility: public # Number of lines: 3 # # def present? # !blank? # end
rpmでインストール&アンインストール
オプションをいつも忘れるのでメモ。
# インストール rpm -ivh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.1.rpm # アンインストール rpm -e elasticsearch # アンインストールに問題ないか確認 # 何か問題あったらごにょごにょ出力される rpm -e --test elasticsearch # 詳細確認(インストールされているかどうか確認できる) rpm -q elasticsearch
My.vimrc
随時アップデート中
" " NeoBundle " first setting " curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh " vim " :NeoBundleInstall " if has('vim_starting') set runtimepath+=~/.vim/bundle/neobundle.vim call neobundle#begin(expand('~/.vim/bundle/')) NeoBundleFetch 'Shougo/neobundle.vim' NeoBundle 'scrooloose/nerdtree' NeoBundle 'jistr/vim-nerdtree-tabs' NeoBundle 'Shougo/neocomplcache' call neobundle#end() endif set number set ruler syntax on filetype plugin on " filetype indent on " 方向キー対応 " imap ^[OA <Up> " imap ^[OB <Down> " imap ^[OC <Right> " imap ^[OD <Left> " 全角記号対応 " set ambiwidth=double " colorscheme default " " NERDTree " " nnoremap <silent><C-e> :NERDTreeToggle<CR> " " NEADTreeTabs " nnoremap <silent><C-e> :NERDTreeTabsToggle<CR> " " neocomplcache " highlight Pmenu ctermbg=4 highlight PmenuSel ctermbg=1 highlight PMenuSbar ctermbg=4 " 補完ウィンドウの設定 set completeopt=menuone " 補完ウィンドウの設定 set completeopt=menuone " rsenseでの自動補完機能を有効化 let g:rsenseUseOmniFunc = 1 " let g:rsenseHome = '/usr/local/lib/rsense-0.3' " auto-ctagsを使ってファイル保存時にtagsファイルを更新 " let g:auto_ctags = 1 " 起動時に有効化 let g:neocomplcache_enable_at_startup = 1 " 大文字が入力されるまで大文字小文字の区別を無視する let g:neocomplcache_enable_smart_case = 1 " _(アンダースコア)区切りの補完を有効化 let g:neocomplcache_enable_underbar_completion = 1 let g:neocomplcache_enable_camel_case_completion = 1 " 最初の補完候補を選択状態にする let g:neocomplcache_enable_auto_select = 1 " ポップアップメニューで表示される候補の数 let g:neocomplcache_max_list = 20 " シンタックスをキャッシュするときの最小文字長 let g:neocomplcache_min_syntax_length = 3 " 補完の設定 autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete if !exists('g:neocomplete#force_omni_input_patterns') let g:neocomplete#force_omni_input_patterns = {} endif let g:neocomplete#force_omni_input_patterns.ruby = '[^.*\t]\.\w*\|\h\w*::' if !exists('g:neocomplete#keyword_patterns') let g:neocomplete#keyword_patterns = {} endif let g:neocomplete#keyword_patterns['default'] = '\h\w*'
CSRの作成方法メモ
# genarate random text openssl md5 * > rand.dat # genarate private key openssl genrsa -rand rand.dat -des3 2048 > mydomain.com.key # generate csr openssl req -new -key mydomain.com.key -out mydomain.com.csr # confirm openssl req -in mydomain.com.csr -text # release private key openssl rsa -in mydomain.com.key
証明書の申請なんて滅多にやらなくなったなぁ。
RailsConsoleでサクッとメール送信
本番環境でメール送信チェックとかするとき用に。
ActionMailer::Base.mail(to: "test@example.com", from: "test@example.com", subject: "題名", body: "本文").deliver
RubyでHTTPリクエストを送る
たまにしか使わなくてよく忘れるのでメモします。
require 'net/http' require 'uri' uri = URI.parse("http://kinosuke.hatenablog.jp/") # when get request req = Net::HTTP::Get.new("#{uri.path}?#{uri.query}") # when post request # req = Net::HTTP::Post.new(uri.path) # req.set_form_data({first_name: 'taro', last_nem: 'yamada'}, ';') # when use basic auth # req.basic_auth('username', 'passowrd') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = (uri.scheme == 'https') # これ無いとSSLページ接続時に「end of file reached (EOFError)」というエラー出る res = http.request(req) # keep-alive使わない版 res = http.start {|h| h.request(req) } # keep-alive使う版。ブロックが閉じた時点でセッションを閉じる case res when Net::HTTPSuccess, Net::HTTPRedirection # OK puts res.code puts res.body else # NG puts res.code puts res.body end