##記事を書いた目的
- 毎回行うaliasの設定手順の備忘録
- .fileで管理できるみたいだけど設定できなかったので毎回コピペしている(反省)
早速.gitconfigをいじってみる
下記コマンドを実施する
git config -e
解決策1 - set pasteでペースト前入力し、ペーストするときのズレを防ぐ。
:set paste
# こんな表示になる
-- INSERT (paste) --
モードを元に戻したい時はこれ。
:set nopaste
:set paste!
を使えば、履歴で再度 :set paste!
を打てば 元のモードに戻れる。簡単!
alias
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
autocrlf = false
[color]
status = auto
diff = auto
branch = auto
interactive = auto
grep = auto
[alias]
f = fetch -p
c = commit -m
ca = commit --amend -m
a = add
m = merge
b = branch
l = log
cl = clean
st = status
sh = show
mg = merge
al = config --get-regexp alias.*
# branch関連
sw = switch
br = branch
ba = branch -a # originも含めた全てのbranchを表示
bm = branch --merged # merge済みのbranchを表示
bn = branch --no-merged # mergeしてないbranchを表示
co = checkout
cob = checkout -b
# stash関連
sl = stash list
sa = stash apply
# log関連
wc = whatchanged # logに変更されたファイルも一緒に出す
ls = log --stat # logに変更されたファイルも一緒に出す
untracked = ls-files --others --exclude-standard #管理対象外のファイルのみ表示
lp = log -p # diffも一緒に出す
la = log --pretty=\"format:%ad %h (%an): %s\" --date=short # ざっくりログ出す
lr = log origin # originのlog
lm = log --merges
lo = log --oneline
lc = log --no-merges
oneline = log --pretty=oneline
ranking = shortlog -s -n --no-merges
# logをtree表示
lg = log --graph --date=short --pretty=format:'%Cgreen%h %cd %Cblue%cn %Creset%s'
tree = log --graph --all --color --pretty='%x09%h %cn%x09%s %Cred%d%Creset'
# diff関連
dn = diff --name-only # name-only
dm = diff master # masterとのdiff
dd = diff develop # developとのdiff
dw = diff --color-words # 単語単位でいろつけてdiff
dc = diff --cached # addされているものとのdiff
ds = diff --staged # 同上(1.6.1移行)
d1 = diff HEAD~ # HEADから1つ前とdiff
d2 = diff HEAD~~ # HEADから2つ前とdiff
d3 = diff HEAD~~~ # HEADから3つ前とdiff
d4 = diff HEAD~~~~ # HEADから4つ前とdiff
d5 = diff HEAD~~~~~ # HEADから5つ前とdiff
d10 = diff HEAD~~~~~~~~~~ # HEADから10前とdiff
dfm = diff --diff-filter=M
dfm1 = diff HEAD~ --diff-filter=M
dfa = diff --diff-filter=A
dfa1 = diff HEAD~ --diff-filter=A
dfc = diff --diff-filter=C
dfc1 = diff HEAD~ --diff-filter=C
dfd = diff --diff-filter=D
dfd1 = diff HEAD~ --diff-filter=D
dfr = diff --diff-filter=R
dfr1 = diff HEAD~ --diff-filter=R
# mergeの際にconflictが起きたファイルを編集
edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; vim `f`"
# mergeの際にconflictが起きたファイルをadd
add-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"
# grep関連
gr = grep
gn = grep -n
grf = grep -F
# gc
gcn = gc --prune=now
設定したaliasを確認したいときの設定
.gitconfig
git config --global alias.al "config --get-regexp alias.*"
#エイリアスの一覧を確認する。又は
vi ~/.gitconfig
で確認する。
$ source ~/.bashrc で先ほどの変更を有効にする
他
bash_profile
# terraform
alias t='terraform'
alias ta='terraform apply'
alias taa='terraform apply -auto-approve'
alias tp='terraform plan'
alias tf='terraform fmt -diff'
alias tv='terraform validate'
alias td='terraform destroy'
pre-commitの作成方法
# レポジトリ直下に .githooks というディレクトリを作る。
$ mkdir .githooks
$ cd .githooks
$ touch pre-commit
# .githooks/pre-push ファイルを読み込むようにlinuxコマンドを打つ。
$ git config core.hooksPath .githooks
# ファイルに実行権限を与える
$ chmod a+x pre-commit
pre-commit
terraform fmt -diff
tflint
# 未削除、ステージング済、変更されたファイル名のみ
for FILE in `git diff --diff-filter=d --staged --name-only`; do
git add $FILE
done
###読んでいただきありがとうございます!(コメントお待ちしております。)