gitでcommitを1つに統合すべき場合 及び 1つのcommitを分解すべき場合 - プロ生アドベントカレンダー2016 - 9日目
なんか勢いでブログ記事を書いたところ、丁度今日のプロ生アドベントカレンダーが空いてたので登録する。
本記事はQiita版プロ生アドベントカレンダー 9日目の記事です。
昨日の記事はUnityからマウスカーソルを操作するでした :D
えっ、なにこれ、プロ生ちゃんがこっちのマウスカーソルを制御してるの? すごい。
宣伝
こういうものを登録しました :D
某所でこれでLTしたりもした。
ちょうど1つのcommitを分解したい事案が出てきたので、備考録として残しておく。
つまりこの記事は、僕の考えに基づいたものであり、公的に正しいとは限らない。
ただし僕は正しいと思うよ!!
About
この記事では、1つの事柄をn個のcommitに分けてしまった場合、
n個の事柄を1つのcommitに混ぜてしまった場合を仮定する。
commitの統合及び分解の具体的手法については以下。
- 今日のgit-tips (簡単で便利なrebaseによるcommit編集)
- gitでコミットを分解する
- これをやった後に
git add -p
でよしなにするといい
- これをやった後に
commitを1つに統合すべき場合
例えば以下のcommitがあるとする。
commit aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Author: aiya000 <aiya000.develop@gmail.com>
Date: Fri Dec 9 02:40:45 1016 +0900
Change expected behavior of registerPlace in Foo.hs
commit bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Author: aiya000 <aiya000.develop@gmail.com>
Date: Fri Dec 9 02:40:28 1016 +0900
Use foo-library instead of bar-library in Foo.hs
Modify some functions in Foo.hs
commit cccccccccccccccccccccccccccccccccccccccc
Author: aiya000 <aiya000.develop@gmail.com>
Date: Wed Dec 7 23:54:26 1016 +0900
Refactor Foo.hs
これはFoo.hs内に限った2つの事柄であるので
- Foo.hsへの機能修正
- Foo.hsのリファクタリング
こうすべきだと思う。
commit dddddddddddddddddddddddddddddddddddddddd
Author: aiya000 <aiya000.develop@gmail.com>
Date: Fri Dec 9 03:00:00 2016 +0900
Change expected behavior of registerPlace in Foo.hs
Use foo-library instead of bar-library in Foo.hs
commit cccccccccccccccccccccccccccccccccccccccc
Author: aiya000 <aiya000.develop@gmail.com>
Date: Wed Dec 7 23:54:26 2016 +0900
Refactor Foo.hs
1つのcommitを分解すべき場合
commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Author: aiya000 <aiya000.develop@gmail.com>
Date: Fri Dec 9 02:40:45 1017 +0900
Update Foo.hs and Hoge.hs
Change expected behavior of registerPlace
in Foo.hs
Use foo-library instead of bar-library
in Foo.hs, Hoge.hs
これは2つの事柄であるので
- 広域な変更(使用するライブラリの変更)
- Foo.hsに限る変更
2つのcommitに分割すべきである。
commit yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
Author: aiya000 <aiya000.develop@gmail.com>
Date: Fri Dec 9 03:01:00 1017 +0900
Change expected behavior of registerPlace in Foo.hs
commit yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
Author: aiya000 <aiya000.develop@gmail.com>
Date: Fri Dec 9 03:00:00 1017 +0900
Use foo-library instead of bar-library
in Foo.hs, Hoge.hs
注釈
本記事に登場したcommitは、いかなる実在のcommitとは関係がありません。
全員18歳以上です。 ご了承ください。 (???)