便利なGit Tools

Presenter Notes

.gitignore

言語/ソフト別の .gitignore

上記をコマンドラインからまとめて適応するツール

Presenter Notes

alias

  • 自分はあんまり使わない
  • zshの設定に直接書いてしまう
  • logはSourceTreeで見たり、コミット等はIDEから直接やる事多い

git cancel は結構使うのでaliasに入れてる

Presenter Notes

SourceTree

Source Tree

  • Windows/Mac 対応のGit GUI
  • SourceTree
  • git flow も対応

Presenter Notes

git flow

more …

Presenter Notes

HubFlow

Presenter Notes

git now

とりあえずコミットして、後からrebaseでまとめるCLIツール

本当にとりあえずコミットだけでも便利

Presenter Notes

git-browse-remote

コマンドラインからレポジトリを開けるツール

  • カスタマイズできるので開きたい方法で開ける
  • エディタから選択してる行数を指定して開く等

Presenter Notes

git subtree push

  • 特定のディレクトリをrootにした別ブランチをpushする
  • git subtreeは複雑になりやすいので使いドコロが難しい

Githubのgh-pagesを作るのに便利

Project # master ブランチ
└── dist # gh-pages ブランチ
    ├── files...
    ├── files...

Presenter Notes

git-new-workdir

  • ワーキングディレクトリを複数作れる
  • Aディレクトリはmaster、Bディレクトリはdevlopみたいなことができる

docsブランチをdocsディレクトリに作って、new-workdirで分ける例

#!/bin/sh
branch=$1
prev_branch=$(git rev-parse --abbrev-ref HEAD)
test -z $branch && echo "branch required." 1>&2 && exit 1
# git-fresh-branch
git symbolic-ref HEAD refs/heads/$branch
rm .git/index
git clean -fdx
# create branch
git commit -q --allow-empty -m 'Initialize ${branch}'
git checkout ${prev_branch}
git-new-workdir . ${branch} ${branch}
echo "${branch}/" > .gitignore
# move
cd "${branch}"

Presenter Notes

Presenter Notes

git bisect(2)

壊れたコミットが入ったことにすぐ気づくには…

  • ファイル監視 + テスト
    • ファイルが変更されたらテストを走らせる
    • コンパイルに時間がかかる言語は向いてない
    • Test'em /karma-runner
  • コミット時テスト
    • コミットするときにテストする(同期的)
    • git-hook
  • 検証済みマージ

Presenter Notes

git hook

Gitでコミットやpushなどをするときにスクリプトを動かす機能

コミットするときやpushするときになど処理をするgit hookを簡単にインストールできるようにするツール(名前同じ)

Presenter Notes

おわり

Presenter Notes