git
コマンド
diff --quiet
git diff --quiet で diff があれば 1, なければ 0
ファイル指定もできて diff があるかどうかだけ知りたい時に便利
clone 時に branch 指定
-b オプション
git clone -b BRANCH git@github.com:...
local:remote
git push origin master:test でローカルの master ブランチを test ブランチへ push
HEAD:hoge
master になくて staging にあるマージコミットを探す
git log --merges -n 100 --first-parent staging --not origin/master --shortstat --pretty='%H %b'
commit -s, --signofff
Sign-off-by: の署名行が付けられる
--amend --reset-author
amend 時に現在の author 情報を埋める
author_date と commiter_date
git には author_date と commiter date がある
コミットの著者の時刻と、取り込んだ時刻
rebase するときの our と their どっちがどっち
git checkout topic && git rebase upstream とするとき、--ours は upstream 側
今いる topic 側に upsteram を取り込んでいる、という気持ちだけど
コミットを積む側の気持ちだと upstream に topic の変更を適用している
リーダブルな revision を出す
git describe --tags --always --dirty
tag があれば使うし、ローカルに差分があれば abcdef1-dirty のような出力になる
pull --rebase=preserve は deprecated
特に違いや理由について調べてないけど一旦これで、2.22 から?
code:.gitconfig
rebase = merges
cap で remote 書き換え
furui
bundle exec cap @production invoke COMMAND='cd /home/httpd/apps/HogeHoge/shared/cached-copy && git remote -v && git remote set-url origin git@github.com:org/HogeHoge.git && git remote -v'
gitignore
*.config.js
Typescript プロジェクトだと **/*.js を ignore してしまいがちだけど *.config.js は入れようね... code:.gitignore
**/*.js
!*.config.js