どうも。
開発時に戻しが出たとき、commit単位で戻さずファイル単位で戻すようなことをやっていると非常に効率が悪いです。そこでcommit単位でrevertしたり履歴をいじりたい場合のためのちょっとした工夫をしてみます。
特定の機能、ファイル単位ごとにcommit
例えば画像投稿の機能があるなら、その機能の分を作ってからcommitするとか。ファイル単位であれば、CSSでデザインをまとめて変える場合に、HTMLファイルと別でcommitしておけば、HTMLに戻しが要るならHTMLのcommitにだけ注目すれば良いし、逆もできますね。というわけで、戻しがしやすいことがメリットです。
git addするときに一工夫
git add ファイル名で1つずつ追加するのが通常です。ファイル数が増えていくとこれが辛い辛い。2桁行き始めると、効率が悪いです。そこでコマンド作っちゃいましょう。
git status | awk '{print $2}' | egrep '^app' | git add
特定の単位(JSだけとかmodelだけとか)の場合は上記のコマンドを頑張るのではなく、
git add ディレクトリ名/.
として、特定のディレクトリ配下のファイルのみをまとめてadd出来ます。
チーム開発時(1つのブランチを複数人で共有している場合を想定)
これは頻繁にconflictが起きてうぜ~ってなっちゃうんですけど、それを必要最小限に抑えようという工夫です。
自分のcommitする前にgit pull
例えば毎朝PC立ち上げたら、一旦下記のようなコマンドを実行することです。
git status git pull origin ブランチ名:ブランチ名 # master取り込みが必要なら git pull origin master:master git merge origin/master
これでlocalを最新にした状態で作業を始めれば、あとでconflictすることも減ります。
conflictしたら常に最新のcommitを見てそれに合わせるか、良く分からなければ直前に同じファイルをcommitした人に変更内容を聞くのもOK。
などなど、ちょっとした工夫をしただけで作業に支障をきたすことが減ります。カッとなってキボクラになる前に、一歩立ち止まって考えるべし。