リポジトリに変更をコミットするための適切な基準は何ですか?

StackOverflow https://stackoverflow.com/questions/692344

  •  22-08-2019
  •  | 
  •  

質問

私は現在、いくつかのプロジェクトの管理に git を使用していますが、最近 1 つの質問が私を悩ませています。master ブランチとセカンダリ ブランチに変更をコミットする場合の適切なトーンは何ですか?「コンパイル時にコミット」、「動作時にコミット」、またはその他にする必要がありますか?ありがとう。

役に立ちましたか?

解決

これは本当にこれはあなたの個人的なレポですか、それは多くの開発者によって共有されているレポで、依存しますか?どこまでプロジェクトには、あなたのですか?

私は一つの側面で行われていますし、すべてがコンパイル時に

個人的に私は私のSubversionリポジトリにコミットします。それはちょうど壊れていない、完全である必要はありません。私は最初の場所で壊れたものを放置しないことを好むます。

ハーフ書かれたコードは、一般的に、私は一度やっていたし、何をまだ行って取得する必要がありますについてのメモで、チェックインしたが、唯一の私の個人的な枝で得ることができます。私はSubversionを使用して、これは私の個人的なレポですので、私は私のデスクトップを残して、私は私のラップトップ上で中断した場所まで戻って選ぶことができるように主にこれを使用します。

一般的にコミットするごとに1つのバグ/問題/機能はいいですが、あなたの開発スタイルに合わないことがあります。これは、より完全なプロジェクトがある場合、それはあなたがどこかにリストから外れアイテムを横断していることを意味するので、コミットもなり得るし、それが完了しました1つの以上のアイテムを意味します。

考慮すべき

他のもの、何がそれはチェックインの保証の変更に関する重要なのですか?例えば、私はこれは私がコミットメッセージの変更だけでなく、文書を文書化しなければならなかったもので、大幅に内部APIを変更昨夜コードでチェック。同時に、私はまた、タイプミスの問題を解決するためにいくつかのコメントを変更しました。これは、コミットメッセージに小さなサブノートを取得しますが、私は十分に大きい問題が独自にコミットを取得するために考えるものではありません。

他のヒント

まず:その考え方に起因する転覆戦略と戦略を無視します。変更を保存し、変更を公開違いがあります。

変更を保存しているコミット。私はタイマーにコミットすることをお勧めではないだろうが、私はより多くのバージョンをリリースするよりも、ファイルを保存するようにあなたがそれについて考えることをお勧め。あなたが戻ってくる必要があるかもしれません恐れるが、そうあなたがどこに戻って取得するのは難しいだろう恐れているときにそれを実行します。

あなたがそれらを公開する前に、

ただし、コミットを書き換える(gitのは、例えば-i起源/マスター#をリベース)。あなたが作った混乱で意味を見つけ、良いコミットメッセージで分かりやすいときれいなコミットのセットを作成し、あなたが持つかもしれないものは何でも品質のチェック、各パスを確保します。そして、それを公開します。

いくつかの基本的な事項:

  1. 「論理的な変更」ごとにコミットするよう努めてください。バグ修正、リファクタリング、機能など...
  2. コードをコミットする前に単体テストを実行します。明らかな点を破っていないことを確認してください (単体テストはありますよね)。
  3. マルチ開発者環境の場合。リポジトリから更新し、単体テストを再度実行して、競合する変更が誰かのコード (あなたまたはその人のコード) を壊していないことを確認します。
  4. 必要に応じて修正し、何も壊れなくなるまで 3 から繰り返します。
  5. すぐにコミットしてください。
  6. 継続的統合テストを利用して、何か他の問題が発生していないかどうかを確認してください。

あなたは、チケット管理システムを使用している場合は、私はタスクが固定されたときにコミットだと思います。

私は、自分自身を「頻繁にコミットし、早期にコミット」で行きます。あなたが自動化されたチェックアウトを持っていると起こってビルドする場合は、これは明らかに動作しません。

1 つだけコミットする タイプ 一度に変化します。

「タイプ」が意味するものはプロジェクトごとに異なりますが、一般的な例には、「外観上の変更」と「機能的な変更」、「リファクタリング」と「新規追加」などがあります。これにより、ログを確認するときに変更を追跡しやすくなり、リビジョンに戻すのも簡単になります。

一歩それを取り戻すために、私は時間の短い期間内に完了することができる問題/バグ/機能上で動作するようにしてみてください。それが良い停止点に来て一日以上かかるために起こっている場合タスクが大きすぎます。

言った、私は、ベストプラクティスは、コードをコンパイルするとき、あなたの変更をコミットすることで、適切に(理想的には、コードの変更にコミット取得ユニットや統合テストで)テストされていると思います。

正しくコンパイル+機能+はよく適切なルールのように思える==し、「それが動作するときコミット」をテストしている場合。

のそれはの働くときコミットします。私の場合、これは意味する:。の の、スモークテストを自動化し、それを実行し、コミット

注:私はコミットする前に実行/自動化するだけでその煙をテストします。回帰テストは継続的インテグレーションに残されています。

あなたがもう一度書きたくない任意のコードをコミットします。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top