GitHub Desktop いろいろなコミット方法とコーディングのやり直し方法

2024年8月2日

開発中のタイミングによって、なるべく簡単な作業方法を見ていきます。

Changesタブに表示されている変更点の一部だけコミットする

Changesには、前回コミットした後に更新されて内容が表示されます
デフォルトでは、すべての変更点がまとめて1つのコミットメッセージでコミットされますが、選んだファイルだけ、またそのファイルの内容の一部だけをコミット対象にすることもできます

Changesタブから選んだファイルだけをコミットする

Changesタブのファイル中の一部分だけコミットする

一部分だけコミットした後(コミットメッセージ入力でコミットボタン押下)は、まだコミットしていないところだけがChangesタブに残されていますいます
続けてコミットができる状態になります

コーディング作業のやり直し方法のいろいろ

コーディング作業では、複数のファイルを更新したり、ファイル内の一部を更新したり、ファイルを削除したり追加したりと様々な作業を伴って進めることになります

ある程度進んだところで、この作業自体をやり直したいことがありますが、どの部分をどのように更新したのか全て覚えておくのは無理がありますね
ここでは、その作業をGitの仕組みを使って簡単に間違いなく時効する方法について説明します

コミット直後とPushではやり直しが異なりますのそれぞれについて説明します

Changesタブに表示されている変更を無かったことにする

まだ、コミットしていない(コミットボタンを押下していない)状態での修正になります
Changesタブに変更情報が表示されている状態です

作業した全てのファイルを作業前に戻す

コミットされていない全ての変更を作業前の状態にします
変更したことが無かったことにしたい場合の作業になります
例えば、ファイルを削除していれば戻りますし、ファイルを追加していれば追加していなかったことになります
つまり変更作業自体しなかったことになります

Changesタブを選択します

変更点が列挙されている状態で次のキャプチャのようにします
作業後、Changesは0になり、最後にコミットした状態まで戻ります

一部のファイルだけ作業前に戻す

戻したいファイルまたは作業だけを選択して、同じように右クリック、Discard Changesを選択します

コミットしたが、まだPushしていない

コミットボタンを押下してHistoryタブにコミット情報がChangesから移動表示された状態での修正になります

コミットした後(コミットボタンを押下したあと)は、Undoで戻すことができます
この作業では、コミットのやり直し(履歴保存をやり直す)だけなので、前回のコミットから変更したところには影響がありません
つまり、変更した作業はそのまま影響がありません(作業は生きています)

コミット自体を戻す

Changesタブを選択し、右下のUndoを押下します

Historyから履歴が消え、Changesにコミット前の状態が戻されます。クリックを繰り返せば、さらに戻すことができます

Push後での修正

すでにGitHubクラウド(サーバー側)にデータをアップしているので、「コミットを打ち消す」ためのコミットを自動で実行させます。

例えば、ファイルの追加をコミットした後だとファイルを削除するコミットを自動発行、逆にファイルを削除したコミットだと削除したファイルを戻すイメージですね

削除したファイルもリポジトリに保管されているため、このようなことが可能です

この打ち消しコミットをさらにPushすると他のチームで作業している人も作業の取り消しのコミットを受け取れるので、影響を与えることなく更新してもらうことができます
また、取り消したこともコミット情報として履歴に残せます

複数のコミットがあり、直前以外の処理をするとその途中で変更箇所が重なる場合、コンフリクト(衝突)が発生するので、その処理が必要になることがありますので注意が必要です

作業のサンプル(動画)

新しくフォームアプリを作成して、ボタンを1つ追加した状態でgit管理を完了していること