もっと早く知っておけばよかったと思う10 Gitコマンド ノート

もっと早く知っておけばよかったと思う10 Gitコマンド

この記事では、基本的な add、commit、pull、push を超えた、日常の開発に不可欠な中級レベルの Git コマンドを厳選して紹介します。まず、git merge と git rebase を対比させ、merge が歴史的な分岐を保持するのに対し、rebase はコミットを書き換えることで、よりクリーンで線形の履歴を作成する方法を説明します。著者は、個人の作業は rebase するが、履歴を書き換える性質上、共有履歴には注意を払うようアドバイスしています。merge と rebase の両方におけるコンフリクト解決戦略と、これらの操作を中止するユーティリティについて議論します。git commit --amend コマンドは、前のコミットに小さく忘れられた変更を追加して、コミット履歴の見た目を改善する方法として紹介されます。amend は新しいコミットを作成し、そのハッシュを変更するため、リモートブランチにプッシュする際には慎重な取り扱いが必要であることが指摘されています。これにより、書き換えられた履歴をプッシュするための --force のより安全な代替手段である git push --force-with-lease につながり、他人の作業を誤って上書きすることを防ぎます。「Git の王様」である git rebase -i (インタラクティブ rebase) が詳細に説明され、散らかったコミット履歴をクリーンで論理的なシーケンスに変えるその強力さが強調されています。pick、reword、edit、squash、fixup、drop などのさまざまなサブコマンドが説明され、開発者がコミットを操作、結合、削除してエレガントな履歴を作成する方法を示しています。この記事では、コミット履歴のクリーンさに関するさまざまな意見が認識されていますが、このコマンドの価値を強調しています。次に、git stash は、本番環境のバグ修正など、コンテキストを切り替える必要がある場合に、コミットされていない変更を一時的に保存するための重要なコマンドとして提示されます。-u フラグを使用した追跡されていないファイルのスタッシュと、整理を改善するためにスタッシュに名前を付けることの重要性について説明します。スタッシュのリスト、表示、適用、ポップのコマンドが提供され、一時的な変更を管理するためのワークフローが概説されています。最後に、git cherry-pick は、ブランチ全体をマージまたはリベースすることなく、あるブランチから別のブランチに特定のコミットを選択的に適用するための非常に便利なコマンドとして紹介されます。これは、他の開発ラインから個々の修正や機能を組み込む場合に特に役立ちます。全体として、この記事は、一般的な現実の開発シナリオに対処するコマンドを提供し、Git スキルを基本以上に向上させるための実践的なガイドとして機能します。