はじめに
世界中のすべての人がGitを使えるようになると、より幸せになれるのではないかと、わりと真剣に思う今日このごろです。
低レイヤを知りたい人のためのCコンパイラ作成入門で、Rui先生が
Gitの高度な機能を使う必要はありません。たとえばブランチを使う必要はないはずです。
と述べられていて、「まさにそうだ」と思い、大いに勇気づけられました。
小さなプロジェクトでも積極的にGitを使用しようと思いました。しかし、フルタイムのエンジニアではないため、しばらくするとすぐに忘れてしまいます。毎回思い出す手間が省ければ、もっと効果的に使用できると思います。そのため、ここにメモを残します。このメモが皆さんのGitの活用を気軽に行うための助けになれば幸いです。
手順
初期化からコミットまで
最初の設定は一度だけ行うため、特に忘れやすいです。しかし、この設定がGitの基礎を築く大切なステップです。
- git init
Gitで管理したいディレクトリ(フォルダ)に移動し、このコマンドを実行して初期化します。これにより、そのディレクトリがGitの管理下に入ります。
- git add a.sh b.txt
次に、Gitが管理するべきファイルを明示的に指定します。全ての変更をまとめて指定するためにgit add .
を使うこともできますが、個々のファイルを明示的に指定する方が、何がしているのか一目瞭然です。
- git commit -m "コメントを書く"
なるべく小まめにコミットします。シェルスクリプトなら、「少し変更を加えて動作確認が取れたらすぐにコミット」することを心がけています。
- git commit -A
-A
ですべての変更をまとめてコミットします。viエディタが起動し、そこでメッセージを入力することができます。i
キーで入力モードに入り、メッセージを入力した後、esc
キーでモードを抜け、:wq
(write & quit)と打ち込むことで保存してコミットできます。
これらの手順を踏むことで、ファイルはしっかりバージョン管理され、変更点を追跡することが容易になります。これはあなたのファイルを安全に保つために大切なステップです。
状況確認
Gitは主にコマンドラインで操作するため、「現在の状態」をすぐに把握できません。しかし、以下のコマンドを使うことで、簡単に確認できます。自信を持ってファイルをを管理し、変更を追跡する強力な道具になります。
Gitはコマンドラインで使うので、「いまどうなっているか」が直感的にわかりません。これらのコマンドを用いると、現状把握ができます。
- git ls-files
これはGit版のls
コマンドです。Gitが管理対象としているファイルを一覧表示します。これにより、何が管理対象となっているかが一目でわかります。
- git status
このコマンドを使うと、コミット後にどのファイルが変更されたかなどの重要な情報を一覧表示できます。これにより、次に何をするべきかが明確になります。
- git log
- git log -p
これらのコマンドは過去のコミット履歴を表示します。-p
オプションを使用すると、各コミットで何が変更されたかを詳細に確認できます。
- git diff
このコマンドは、最後のコミットと現在のワーキングディレクトリの間で何が変更されたかを表示します。これは、まだコミットされていない変更を確認するのに特に便利です。
これらのコマンドを活用することで、Gitの現状を正確に把握し、ファイルをより効果的に管理できるようになります。
変更
プロジェクトの進行中、管理対象のファイルの名前を変更したり、不要なファイルを削除したりすることがよくあります。そうした変更も適切にバージョン管理するためのコマンドです。
- git mv a.sh c.sh
Git版のmv
コマンドです。ファイル名を変更しても、以前のコミット履歴は保持されます。ファイルの進化を追跡し続けるための重要な機能です。
- git rm a.sh
ファイルを削除し、管理対象から外すときは、Git版のrm
コマンドを使用します。これにより、ファイルの削除が適切に記録されます。
- git checkout --
何か間違えてファイルを変更してしまった場合、このコマンドで最後にコミットされた状態にファイルを戻すことができます。
- git reset --hard
前回のコミット以降に行った変更を全て取り消します。
これらのコマンドを用いることで、プロジェクトの変更管理はよりスムーズに、より効率的に行えます。
おわりに
Gitの基本的な使い方について簡単にまとめました。コミットから状況確認、さらにはファイルの変更管理まで、Gitの基本操作をカバーしました。これらの基本コマンドは、たとえ小さなプロジェクトであっても非常に役立ちます。
この記事では意図的に、以下の機能の解説を省きました。
- ブランチ
- リモートリポジトリ
- プルリクエスト/マージリクエスト
個人的な小規模なプロジェクトでは、これらの機能を使わなくてもGitの力を十分に発揮できます。むしろ、小規模なプロジェクトでもGitを使うことは、労力に対する効果が高い使いかただと言えるかもしれません。
Gitを初めて(または久しぶりに)使うときは難しく感じるかもしれませんが、一歩ずつ進めばそれほど難しいものではありません。そして、プロジェクトをより効率的に、より安全に運営するための強力な手段となります。
この記事が、あなたがGitを気軽に使うきっかけになれば幸いです。一人でも多くの人がGitの力を活用することで、より創造的で効率的なコンピュータ利用の世界が広がることを願っています。
環境
- macOS Ventura 13.3.1
- MacBook Pro (14-inch, 2021)