@yuku_t
- Qiitaに載ってた
- GitHub Cheet Sheet
- 入門Git
コンフリクト発生時の問題
もとの状態がよくわからなくなるとき
- merge.conflictstyle もとの祖先を表示さす
- git stash save pop indexしたものがstashされる --all --inclide-untracked --keep-index(index treeをそのまま残す)
全く新しいworking directoryがほしい
git-new-workdir
シンボリックリンクを貼ってくれるところがgit cloneと違うところ。 編集もstashも同期される。
diff-highlight
git-core/contrib
git diff & apply
$ git diff -w | git apply --cached
w
空白文字
cached
indexのみ更新
空白の変更とちゃんとした変更が近すぎるとコンフリクト
git fsck
個々のノードはsha1値を持つ。
使うコミットには名前(ref)をつけて、 名前がつけられていないやつはゴミ。ゴミを判定して列挙する。
$ git prune $ git gc
addしてcommitせずにreset --hardしちゃった
mergeしてコンフリクトしたときとかたまにやる。
ゴミ判定されたオブジェクト
.git/lost-found/commit/ .git/lost-found/other/ ←こっち
書きだされたファイルをgrepして目当てのファイルを復元
git stash clear
git stash し続けるとゴミが増えちゃうね
git stash apply <stash-sha1>
github review
hubコマンド
hub browse
hub pull-request
現在のリポジトリをブラウザで開く。
空のPRを作って作業を可視化する
$ git checkout -b projectx $ git commit --allow-empty -m ProjextX $ git push $ hub pull-request
git rebase -i --autosquash
push -fを禁じるとどうでもいいコミットログがジャカジャカ増える
"squash! コメント"
rebase.autosquash true
autosquash用のメッセージを自動生成してくれる
$ git commit --squash <comit>
$ git commit --fixup <comit>
fixupはコミットメッセージを編集しない squashは編集する
ブランチ名を調べるのが面倒
prfetch
alias.branch-root
[alias] branch-root = merge-base master HEAD
トピックブランチの根本のsha1が見れる
tig ---reverse $(git branch-root)..HEAD