Git 操作の改善 Tips (2017年上半期版)

2017年も下半期に入っていたので、2017年上半期に自身の Git 操作を改善した点を Tip として 3つ挙げてみた。

Tip 1. 作業前に git branch する

作業フローを改善した Tip となる。作業の前に、Pull Request のタイトルになるものを git のブランチ名を付けるというのを以前 kamipo さんに教えてもらった。

作業の前にというのがポイントで、これから行なう作業の目的に対するブランチ名自体が作業メモになる。手元に作業ブランチをいくつか持つような時は、いくらかの時間が経った後でも何がなんの作業を目指していたか分かる。

さらに場合によっては空コミットでやろうとした作業メモを一時的なコミットメッセージとして残せば、git branch -v でやろうとしていた作業が分かって便利。なるほど。

これによって、master 起点での作業途中のものを git stash で凌ぐということが減った。まず何をやろうとしているかゴールを定めて着手するという点からも上手く働くフローだと思う。

Tip 2. リモートに push するときは git push upstream head

作業ブランチを upstream に push する際に、いまいるブランチ名を head という名前で push できることを onk に教えてもらった。実際の話として git push upsteam head の定型句で push できるようになってかなり捗るようになった。

Tip 3. マージ権のあるリポジトリgit remote add upstream <originと同名のURL> しておく

GitHubOSS リポジトリでの活動では、マージ権 (コミット権) のないリポジトリは fork した upstream に push して、fork 元のリポジトリに追随する時は origin から pull する流れになる。

これはマージ権のあるリポジトリ (特に業務の GitHub だとだいたいそうだと思う) も git remote add upstream <originと同名のURL> しておくという Tip となる (fork ではなく origin と同名の URL という点がポイント) 。

前述の Tip と組み合わせた話として、fork 元からコードを取って来る時は git pull origin <branch-name> として、fork した先にコードを push するときは git push upstream head といった形で、リポジトリを横断して統一した操作にできる。

だいたいの pull ケースは git pull origin master となり、push のケースは git push upstream head の定型で脳と指の筋肉運動への負荷が減って良いと思う。これによってプライベートな業務と OSS で透過的な操作になった。