Git組織のヒント

gitは通常どのように使用されますか? 「 全員を同期する」ための基本的なコマンドのペア。 Gitのフラストレーションは、この表面的な理解を超えない人々の間でしばしば発生します。 しかし、gitをマスターすることは確実に成果を上げます。 gitの使用に費やす時間はどれくらいですか? あなたのベルトには、半分の頻度で使用し、勉強に2倍の時間を費やす多くのツールがあることをお勧めします。



gitについて詳しく知りたい場合は、 Pro Gitの 第10章 (無料です!)、第2章、第3章、第7 から始めることをお勧めします。残りはオプションです。 この記事では、本で説明されているツールを使用して、Gitで統制の取れた生産的な作業を行う方法について説明します。

基本:適切なコミットの説明




これを聞いたことがあるかもしれませんが、我慢してください。 一般的に、 git commit -m " "git commit -m " "を使用する必要はありません。 お気に入りのエディターを使用するようにgitを構成することから始めます: git config --global core.editor vim 、次にgit commitます。 エディターが開き、コミットの説明を書き込むことができます。 最初の行は50文字に制限され、文で完了する必要があります。このコミットを適用した後 、「CJK言語でテキストレンダリングを修正します」、「v3プロトコルのサポートを追加します」、「CRTC処理をリファクタリングします」など。 コミットの詳細な説明に進みます。これは、72列にハードコードされ、コミットの正当化、トレードオフ、アプローチ制限などの詳細を含める必要があります。

これは電子メールメッセージの標準幅であり、電子メールはgitの重要なツールであるため、72文字を使用します 。 最初の行が電子メールの件名になり、 “[PATCH linux-usb v2 0/13]”などのテキストを“[PATCH linux-usb v2 0/13]”追加できるため、50文字の制限が使用されます。 このようなフォーマット制限は煩わしくて面倒な場合がありますが、他の人があなたとは異なるコンテキストでログを読み取ることに注意してください。 私はよく縦長のモニターでコミットログを読みますが、4K 16:9ディスプレイほど多くのテキストを1行に詰め込むことはありません。

各コミットは自律的な変更である必要があります


各コミットには1つの変更のみを含める必要があります。1つのコミットで小さな関連のない変更を避けてください(この点で、自分のヒントをより頻繁に聞くことができます)。 また、1つの変更を複数のコミットに分割することは避けてください。ただし、アイデアが個別のステップに分割されており、各ステップが完全な変更を表している場合を除きます。 作業ツリーにいくつかの変更があり、それらの一部のみをコミットする必要がある場合は、 git add -iまたはgit add -p試してください。 さらに、各コミットはコンパイルし、すべてのテストに合格し、将来のコミットで修正される既知のバグを回避する必要があります。

これで、任意のコミットを取得して、コードが正しく機能することを期待できます。 これは、たとえば、リリースブランチにコミットを選択的に含めるプロセスで、後で便利になります。 このアプローチは、 git-bisect 1の有用性も高めます。 なぜなら、コードがコンパイルされて各コミットのテストに成功すると予想される場合、プログラムでツリーのエラーをチェックし、誤検知を回避するgit-bisectスクリプトを渡すことができるからです。 これらのスタンドアロンの適切に記述されたコミットは、 LinuxがLinuxリリースで行うようにgit-shortlogを使用してリリース記述の準備を簡素化します

初めて正しくやるのは難しい


gitの最も重要な機能の1つに到達します。これは、Gitの前身であるストーリー編集とは一線を画しています。 すべてのバージョン管理システムには、ある種の「タイムマシン」が付属していますが、以前はほとんどが読み取り専用でした。 ただし、Gitタイムマシンは異なります。過去を変更できます。 実際、これを行うことさえ奨励されています! しかし、私はあなたに警告します:過去を変えてください、それはまだ安定した公的なブランチに入っていません。

一番下の行は次のとおりです。 エラーなしでコミットを記述し、適切な説明を含む自律的なコミットを最初の試行で行うことは困難です。 対照的に、ストーリーの編集は簡単で、gitの効率的なワークフローの一部です。 git-rebaseをチェックして自由に使用してください。 rebaseを使用して、コミットを並べ替え、マージ、削除、編集、および分割できます。 たとえば、通常はファイルにいくつかの変更を加え、修正コミットを送信し( git commit -m fixup )、次にgit rebase -iを使用して以前のコミットにマージします。

さまざまなヒント



1.簡単に言えば、git bisectは、履歴内の2つのコミット間でバイナリ検索を実行するツールです。エラーをチェックできるように、コミット間のコミットを1つずつ確認します。 このようにして、問題の原因となったコミットを計算できます。

Source: https://habr.com/ru/post/J449566/


All Articles