この記事では、初めてのチーム開発でGitを使ってタスクをこなすシーンを通じて、git revert
、git reset --hard
コマンド、そして.gitignore
の使用方法をまとめました。
【シナリオ】
タカノリくんは、仮想通貨の取引を行うWebアプリケーションを開発するプロジェクトチームに参加しています。今日から彼は、新たな機能の開発に取り組みます。開発する機能は"ユーザープロフィール表示"です。
STEP 1: git revertを使って最新のコミットを元に戻す
タカノリくんは新機能の開発中、誤ってバグを導入してしまうコミットをしてしまいました。彼はこの問題を修正するために、git revert
コマンドを使います。
$ git revert HEAD
ここでHEAD
は現在のブランチの最新のコミットを指しています。したがって、git revert HEAD
とすると、最新のコミットが元に戻され、バグが修正されます。なお、特定のコミットを元に戻したい場合には、HEAD
の代わりにそのコミットのハッシュを指定します。
git revert
は新しいコミットを作成して変更を反転させるため、コミット履歴は維持されます。
STEP 2: git reset --hardを使ってコミットを削除する
次に、タカノリくんは誤ってプロジェクトに関係ないファイルを追加するコミットをしてしまいました。彼はこの問題を修正するために、git reset --hard
コマンドを使います。
$ git reset --hard HEAD~1
ここでHEAD~1
は現在のブランチの一つ前のコミットを指しています。したがって、git reset --hard HEAD~1
とすると、最新のコミットが削除され、前のコミットの状態に戻ります。なお、特定のコミットまで戻したい場合には、HEAD~1
の代わりにそのコミットのハッシュを指定します。
git reset --hard
は非常に強力なコマンドなので、使用する際には注意が必要です。
STEP 3: .gitignoreを使って特定のファイルを無視する
タカノリくんは開発中にテストデータやログ、設定ファイルなど、Gitで追跡したくないファイルを作成します。彼はこれらのファイルをGitの管理対象から除外するために、.gitignore
ファイルを使います。
$ echo "log/*" >> .gitignore
$ echo "config.ini" >> .gitignore
これにより、log/
ディレクトリとconfig.ini
ファイルはGitの管理対象から除外されます。.gitignore
はプロジェクト内の特定のファイルやディレクトリをGitの管理から除外するための重要なツールです。
まとめ
git revert
、git reset --hard
、そして.gitignore
は、開発作業を効率的に進めるための重要なツールです。適切に使用することで、エラーの修正、不要なファイルの管理からの除外など、様々なタスクを効率的にこなすことができます。ただし、特にgit reset --hard
は非常に強力なコマンドなので、使用する際には慎重さが求められます。