ネイティブと働いて分かった英語コミットメッセージの頻出動詞10つ

# あいさつ

英語ネイティブのエンジニアと働き始め４ヶ月ほど経ちますが
（参考: [シリコンバレーで仕事得るのクッソ楽勝だったわ〜](http://blog.gogotanaka.me/entry/2014/10/07/getting_job_is_a_piece_of_cake)）

今でもたまに

    $ git commit -m '

ウッ

ここで詰まる事は往々にしてあります.

特に急いでる時の煩わしさは甚だしいです.

どうせならそれっぽい英語を使いたいのでOSSや同僚のコミットメージの語彙の出現確率を調べてみましたら、

もちろんfeatureによってコミットメッセージの付け方など数多あるものの、一定の頻出パターンは見い出せたので筆を取りました.

（英語勉強しないと..）

# 方法

github.com/rails/railsのコミットメッセージ内における各動詞の出現確率を求め、

またOSSと仕事でのコミットメッセージの趣向も変わってくる事も勘案するため、
（仕事でDeprecateとか滅多に使わんし）

同僚に聞きつつ10つあげてみた.

# 以下列挙

（例は実際の同僚やOSS上でのコミットメッセージです.）

## Add *A to *B

*Aを*Bに加える

```tex:例
Add ambiences to admin_notify_organizer_new_event email.
```

## Remove *A from *B

*Bから*Aを取り除く

```tex:例
Remove config/database.yml from git index and add it to gitignore.
```

## Move *A from *B to *C

*Aを*Bから*Cに動かす

```tex:例
Move admin_notify_venues_shortlisted email from LeadMailer to AdminMailer.
```

## Replace *A with *B

*Aを*Bに取り替える

```tex:例
Replace the elaborate reloading connection checking scheme, just fix the Ruby-based MySQL adapter, ye?
```

## Make *A *B
*A を*Bにする、させる

```tex:例
Make javascript_include_tag :default behave correctly with application.js
```

```tex:例
Make counter_cache work with polymorphic belongs_to
```

## Change *A to *B
*Aを*Bに変更する.

```tex:例
Change a to an for HTML word [ci skip]
```

## Update *A to *B

 *Aを*Bに更新する
 
```tex:例
Update edge to script.aculo.us to 1.7.1_beta3
```

## Ensure *A

*A である事を確実にする.

that節とよく使うぽい.

```tex:例
Ensure that request.path never returns nil.
```

## Use *A

*A を使う.

単体で用いるよりもinstead of や forの前置詞（下部で述べる）とよく使うっぽい

```tex:例
Use `Base.strict_decode64` instead of `Base.decode64` just as we do in encoding;
```
## Fix *A

*Aを直す

```tex:例
Fix saving reject_reason when rejecting lead.
```



## その他比較的頻度の高かった動詞

上記が題意となる頻出動詞１０です.

以下はその他比較的頻度の高かった動詞です.

#### Refactor

```tex:例
Refactor RoutesReloader a bit to avoid creating extra hash objects
```

#### Improve

```tex:例
Improved the silence method on the logger to ensure restoring the old level
```

#### Extract

```tex:例
Extract InflectorTestCases so both inflector and string inflections tests can use them.
```

#### Deprecate

```tex:例
Deprecate using method_missing for attributes that are columns.
```

#### Avoid


```tex:例
Avoid empty transaction from setting has_one association on new record.
```

#### Simplify


```tex:例
Simplify Preloader#grouped_records code.
```

#### Define


```tex:例
Define the Duration#instance_of? method
```

#### Allow

```tex:例
Allow use of assert_template with the :file option.
```

#### Switch from *A to *B


```tex:例
Switch from SHA2 to BCrypt
```

#### Implement


```tex:例
Implement #== for column
```

#### Clean up


```tex:例
Clean up JobWrappers::ResqueWrapper.perform
```

#### Enable
```tex:例
Enable memcached service on travis for running cache tests.
```

#### Sorting *A by *B

```tex:例
Sort migrations by the migration ID.
```

#### Rewrite

```tex:例
Rewrite Account Setting page from ERB to HAML.
```

#### Support
```tex:例
Support multiple config.after_initialize blocks so plugins and apps can more easily cooperate.
```

#### Stop, Prevent

```tex:例
Stop relying on columns in sqlite quoting tests
```

#### Drop

```tex:例
Drop variable assignment in validations
```

## 前置詞（上記の動詞に情報を付加するもの）

## with *P
*Pと一緒に、伴って

```tex:例
Fixed error with 'rails generate new plugin'.
```

## for *P

*P のために

```tex:例
Add a simple API for fetching a list of entries from the cache
```

## instead of *P

*P の代わりに

```tex:例
Use `Base.strict_decode64` instead of `Base.decode64` just as we do in encoding;
```
## in *P

*Pの、で

```tex:例
Use strong_params in example
```

## at *P

*Pの、で

```tex:例
Revert "log at debug level what line caused the redirect_to"
```
## as *P

*Pとして

```tex:例
Stop messing up with instance variables, use protected as it was meant for
```
# 締め

他にもクラス名や名詞を列挙するものなども散見出来ましたし、

まあ伝わればなんでも大丈夫、というメンタリティも大事です。
完璧主義になりすぎると手が止まります。