筆者の備忘録用に、ローカル開発におけるGitの基本コマンド実施例を纏めました。
Gitはインストール済、以下のプロジェクトディレクトリ(フォルダ)を用意し、エディタはVSコードを使います。
Git-Practice/
├── index.html
├── css/
│ └── style.css
└── js/
└── script.js
Git 初期化~初期コミットまで
VSコードでターミナルを表示する
まず、Gitのコマンドを入力・実行するためのターミナルを表示させます。
VSコードでは、カーソルを画面下の青色バー付近に持っていくと上下矢印に変わります。この状態で上方向にドラッグすると、ターミナルが出現します。
ちなみに画面は、Gitで管理するプロジェクトフォルダ(Git-Practice)を開いた状態です。
【git init】リポジトリを初期化(新規作成)する
git init
Gitで管理したいフォルダ(ディレクトリ)を開いた状態で上記コマンドを実行すると、「.git」という隠しフォルダ(Gitリポジトリ)が作成され、ここに履歴が保管されるようになります。
初期化に成功すると「Initialized empty Git repository in ~」と表示され、Git-Practiceフォルダ下に「.git」という新しいフォルダが新規作成されました。
【git add / git commit】初期コミットをローカルリポジトリに保存する
以下のコマンドを実行し、プロジェクトディレクトリ内の全てのファイルとフォルダをステージングエリア* に追加してGitの管理対象にします。
git add .
続いて以下コマンドを実行し、ステージングエリアに追加された変更をローカルリポジトリに保存(コミット)します。
git commit -m "最初のコミット"
git init
→git add .
→git commit -m "最初のコミット"
とコマンドを実行したときのターミナル
初期コミットを行った後は、実際にGit管理下のファイルを更新し、更新後にgit add .
→git commit -m "コミットメッセージ"
で更新履歴をGitリポジトリに保存していきます。このように管理することで、都度のコミット履歴がGitリポジトリ(「.git」ファイル)に蓄積され、必要に応じて更新前のコードに戻ったり更新内容を修正したりできるようになります。
初期コミット後の基本的な操作
【git status】更新したファイルがステージングされているか確認する
git status
更新したファイルがgit add
されているかを確認するコマンドです。
作業をしていると、どのファイルを更新したのか、その更新ファイルがステージングエリアに上がっているのか、わからなくなることがあります。そんなときに使うコマンドです。
実際に「index.html」ファイルを更新し、git status
で状況を確認してみます。
「index.html」を更新し、git add .
する前にgit status
を実行したときの画面
「index.html」を更新し、git add .
した後にgit status
を実行したときの画面
【git log】コミット履歴を確認する
git log
すべてのコミット履歴を確認するコマンドで、更新者(Author)や日時(Date)、コミットメッセージに、コミット毎に割り振られる固有番号(ハッシュ)を確認できます。(このハッシュを使うことで、その時点のコミットに戻ることができます。)
git log
を実行したときの画面。STEP3,4でコミットした2つの履歴が表示されています。
コミット履歴を1行で簡潔に表示させるコマンドもあります。(個人的には、こちらの方を頻繁に使います。)
git log --oneline
このコマンドを実行すると、すべてのコミット履歴を1行ずつリスト表示してくれます。
git log --oneline
を実行したときの画面。ハッシュとコミットメッセージのみが1行で簡潔に表示されました。
【git commit –amend】直前のコミットを修正する
git commit --amend -m "新しいコミットメッセージ"
直前にコミットした内容を修正したいときに使うコマンドです。
コードが間違っていたので少し修正したい、メッセージだけを変えたいなど、新しくコミットを作るまでもないときに使います。
STEP1で更新した内容を少し修正し、git commit --amend -m "タイトル(ホーム)を追加"
を実行します。
その後、git log --oneline
でコミット履歴が変化していないか確認します。
無事、直前のコミットのハッシュとメッセージが更新されました!
【git checkout】特定のコミットに戻る
git checkout ハッシュ
git log
等で確認したハッシュを入力することで、その時点のコミットに戻るコマンドです。
git checkout 9942a1d
で、最初のコミットに戻ってみます。
git checkout
を実行すると、英語の長文コメント(今後のコミットに関するアドバイス)も表示されました。
ここでは「ブランチ」という仕組みについても言及されていますが、本記事では割愛します。
また、以下コマンドを実行することでこのアドバイスを非表示にできます。
git config advice.detachedHead false
【git reflog / git checkout】最新のコミットに戻る
git checkoutで過去のコミットに戻った後、再び最新のコミットに戻るには、同じようにgit checkout
と最新コミットのハッシュを使います。
ただし、過去のコミットに戻った状態でgit log
を実行してもそれ以前のコミットしか表示されません。git log
の代わりにgit reflog
を使えばGitの操作履歴を表示することができるので、ここで最新コミットのハッシュを調べることができます。
git reflog
あるいは、直接ブランチ名を指定してcheckout
することでも戻れます。(ブランチについては こちら)
通常、最初に作業しているブランチはmain
やmaster
という名前がデフォルトで付いているので、そのブランチ名を指定してcheckout
します。
git checkout main
最新のコミットに戻るだけなら、こちらの方がシンプルで簡単ですね。
git reflog
で操作履歴を確認し、checkout
を使って最新のコミットに戻ってみます。
※また、上述の通りgit checkout main
でも戻れます。
【git reset】更新を破棄して戻る
git reset --hard ハッシュ
これまでの更新内容は破棄し、指定したコミットに戻るコマンドです。--hard
オプションを付けると作業ディレクトリで更新した内容も破棄されてしまうので、実行するときは注意しましょう。
git log --oneline
で戻りたいコミットのハッシュ(99f2a1d)を確認し、git reset --hadr 99f2a1d
を実行してみます。
これまでの更新内容が破棄され、最初のコミット(99f2a1d)に戻りました。
以上、ローカル開発でよく使うGitコマンドの実行例をご紹介しました。
次のステップとしてブランチ開発についても纏めましたので、以下も合わせてご覧ください。