本文へスキップ
BecomeCoder
ブログ一覧コース一覧

Git使い方入門|add・commit・pushとは?初めてのコミットまで

#Git#初心者#バージョン管理

結論:Gitは「変更を記録するスナップショット(セーブポイント)」を積み重ねる仕組みで、git add(記録する変更を選ぶ)→git commit(記録を確定する)→git push(記録をリモートに送る)の3手順の意味さえ分かれば、最初の1歩は誰でも踏み出せます。 実際にコマンドを打って結果を見るのが一番早く、環境構築なしでブラウザ内のシミュレータを使えば1時間もかからず体感できます。

Gitとは何か ― 「セーブポイント」で考える

ゲームのセーブポイントのように、「今の状態」を記録として残せる仕組みがGitです。コードを書いていると「昨日の状態に戻したい」「いつ・なぜこの行を変えたのか知りたい」という場面が必ず来ます。ファイルを app_final.js app_final2.js app_本当に最終.js と増やして管理するのではなく、Gitに履歴として残せば、いつでも過去の状態に戻れます。

この「変更の記録」の仕組みは Wikiの「Gitとは」 にも整理していますが、言葉で読むより先に手を動かすほうが理解が早いです。Become-CoderのGitコースは、ブラウザ内で動くシミュレートGitにコマンドを打ち込んで、その場で結果を確認しながら学べます。インストール不要・登録不要・無料です。

最初のレッスン 「バージョン管理とは ― git init」 から実際に git init を打ってみると、「Gitを使い始める」がどういうことか一発で分かります。

つまずきポイント1:3つのエリアが分からない

Git初心者が最初に混乱するのが、「変更を保存したつもりなのに反映されない」という状況です。これはGitが変更を3つのエリアに分けて管理しているために起こります。

この3つのエリアの関係は 「git status ― 3つのエリアを理解する」 で図解しながら扱っています。git status は「今どのファイルが、どの段階にいるか」を教えてくれる最も基本的なコマンドで、迷ったらまずこれを打つ癖をつけると混乱しません。

つまずきポイント2:git add commit push の役割の違い

「git add commit push とは」で検索する人の多くは、この3つが似た響きなのに何が違うのか掴めていません。役割はそれぞれ次の通りです。

  1. git add:作業ツリーの変更のうち、「次のコミットに含めたいもの」だけをステージに載せる。全部まとめてではなく、関係する変更だけを選んで小さくコミットできるのがGitの強みです。詳しくは 「git add ― 変更をステージに載せる」 を参照。
  2. git commit:ステージに集めた変更を、1つのセーブポイントとして確定させる。必ずメッセージ(何をしたのかの一言)を添えます。これが未来の自分やチームへの手紙になります。詳しくは 「git commit ― 変更を記録する」 を参照。
  3. git push:ローカルに積み上げたコミットを、GitHubなどのリモートに送る。手元だけの記録をチームや別の環境と共有する最後の一手です。詳しくは 「git push ― リモートへ送る」 の前段 「リモートとは ― git remote add」 と、「git push ― リモートへ送る」 を参照。

Become-CoderのGitコースは、この git push までの計21レッスンがすべてブラウザ内のシミュレータで実際にコマンドを打って実行できます(第3章「リモートと共同作業」の git push まで)。実際のGitHubアカウントを用意しなくても、add→commit→pushの一連の流れを手を動かして体で覚えられるのが最大の利点です。

最初のコミットまでの実際の手順

初めてのコミットは、次の順番で進めます。

  1. git init でリポジトリを作る(git-01
  2. git config で名前とメールを設定する(git-02)— コミットには「誰が記録したか」という著者情報が必ず刻まれるため
  3. ファイルを編集し、git status で今の状態を確認する(git-03
  4. git add で変更をステージに載せる(git-04
  5. git commit -m "メッセージ" で記録を確定する(git-05
  6. git log で履歴を確認する(git-06

ここまでがGitの最小サイクルです。この6ステップさえ体で覚えれば、あとの branchgit-09)や mergegit-12)、コンフリクトの解消(git-13)は応用にすぎません。

つまずきポイント3:コミット前に何を変えたか分からない

「add したはずなのに、実際どこを変えたか自分でも忘れた」というのもよくある悩みです。コミットする前に自分の変更を正確に見るコマンドが git diff で、追加した行は +、削除した行は - で示されます。コミット前に diff を見る習慣は、意図しない変更の混入を防いでくれます。詳しくは 「変更を見る ― git diff」 を参照してください。

また、ビルド生成物や node_modules のような「履歴に残したくないファイル」を毎回 git status に出さないための仕組みが .gitignore です。これも実際に手を動かして体験できます(git-08)。

「戻したい」と思ったら

Gitを安心して使えるのは「取り消せる」からです。ただし取り消しには段階があり、「まだステージだけ戻したい」「作業ツリーの編集ごと戻したい」「コミットまで打ち消したい」でコマンドが変わります。この整理は 「取り消しの基本 ― restore と reset」 と、コミット自体を安全に打ち消す 「git revert ― 変更を安全に打ち消す」 にまとめています。「間違えたら壊れるのでは」という不安は、この2つのレッスンを実際に試すことで解消できます。

次に読む

← ブログ一覧に戻る