1.いつでもどこでも同じコードを使うために
自宅のデスクトップ、会社のPC、外出用のノートPC。3拠点で同じプロジェクトを触っていると、必ずぶつかるのが「どうやってソースコードを同期するか」という問題です。私は長らく、htdocsフォルダごと外付けSSDに入れて持ち歩いたり、Xserverの本番環境を中継地点にしてFTPで上げ下ろししたりという、お世辞にもエンジニアらしいとは言えない方法でやりくりしていました。SSDを忘れた日の絶望感、FTPの上げ忘れで会社のPCに古いコードが残っていた時の落胆。同じ経験をしている方は、きっと少なくないと思います。
社員からは「Gitを使ってください」と何度も言われていたのですが、PushだのPullだのブランチだのという用語の壁が高く、半年以上も挫折したまま放置していました。それが先日、ようやく重い腰を上げて触ってみたところ、「なんだ、要するに履歴管理機能つきのクラウドHDDのようなものじゃないか」と腑に落ちて、一気に世界が変わりました。今回は、私と同じように「Gitってなんだか難しそう…」と足踏みしている方に向けて、ゼロから3拠点同期環境を作る手順を整理してお伝えします。
- GitHubに「自分専用のクラウド保管場所(リポジトリ)」を作る。
- ローカルPCのプロジェクトフォルダをGitで管理し、GitHubに初回アップロード(push)する。
- 別のPCでは、そのリポジトリから最新コードをダウンロード(pull)して続きを書く。
手順1.Gitを自分のPCにインストールする
まずは、PCで git コマンドが動くようにするために、Git本体をインストールします。Git公式サイトからWindows用のインストーラーをダウンロードしてください。
インストーラーは選択肢がたくさん出てきますが、深く考えずに「Next」を連打してデフォルト設定のまま進めて問題ありません。インストールが終わったら、Cursorのターミナル(または普通のコマンドプロンプト)で次のコマンドを打ってみます。
git --version
git version 2.xx.x のようにバージョンが表示されれば、無事にGitが使える状態になっています。これを3拠点すべてのPCで行ってください。
手順2.GitHubのアカウントを作り、リポジトリを作成する
次に、コードを保管するクラウド側の場所を作ります。GitHubにアクセスして、Sign upからアカウントを作成してください。無料プランで十分です。誰でも自分専用の保管場所を持つことができます。私は長年、ネット上のプログラムをダウンロードする時にGitHubから落としていたので、てっきり特別な開発者向けサービスかと思っていましたが、実際は誰でも無料で使えるものでした。お恥ずかしい限りです。
アカウントを作ったら、コードを入れる箱である「リポジトリ」を作成します。リポジトリとは、ソースコードを履歴付きで保管できる、プロジェクト専用のフォルダのようなものだと思ってください。
1. 画面右上のアイコンをクリック → Your repositories を選択
2. 緑の New ボタンをクリック
3. Repository name に好きな名前を入力(例:qumcum-com)
4. Public(公開)か Private(非公開)を選ぶ ※業務コードは必ずPrivate
5. 一番下の Create repository をクリック
作成が完了すると、コマンドの一覧が書かれたページが表示されます。このページのURL(https://github.com/ユーザー名/リポジトリ名)は手順4で使うので、そのままタブを開いておいてください。
手順3.除外ファイルのリスト(.gitignore)を作る
ローカルからGitHubにアップロードする前に、地味に大事な準備があります。それが「アップロードしたくないファイルのリスト」を作ることです。
Gitには大きなファイル(特に動画やバイナリなど)を上げると動作が重くなる、あるいはそもそも上げられないという制約があります。また、パスワードや個人情報を含む設定ファイルも、間違ってアップロードしてしまうと公開リポジトリの場合は世界中に流出してしまいます。これを防ぐために、あらかじめ「これは無視してね」というファイルやフォルダを宣言しておきます。
プロジェクトのルートフォルダ(例:C:\xampp\htdocs\qumcum.com)に、.gitignore という名前のテキストファイルを作成し、除外したいものを1行ずつ書きます。
/movie/
/uploads/
*.mp4
*.zip
config.php
上記の例では、movieフォルダ・uploadsフォルダ以下のすべて、拡張子がmp4とzipのファイル、そしてconfig.phpを除外しています。ご自身のプロジェクトに合わせて中身を調整してください。
手順4.ローカルのコードをGitHubに初回アップロードする
いよいよ本番です。Cursorで対象のプロジェクトフォルダを開き、内蔵ターミナルから以下のコマンドを順番に実行します。1行ずつ意味を説明しながら進めるので、慌てずに1つずつ実行してください。
git init
このフォルダをGitで管理しますよ、という宣言です。実行するとフォルダ内に .git という隠しフォルダが作られ、ここから先の変更履歴がすべてここに記録されるようになります。
git add .
フォルダ内のすべてのファイルを「次に保存するリスト」に登録します。末尾のドット(.)が「全部」という意味です。.gitignoreに書いたファイルは、このリストから自動的に除外されます。
git commit -m "初回コミット"
「次に保存するリスト」の内容を、メッセージを付けて履歴として確定します。-mの後ろに書く文字列が、後から「いつ・何のために変更したか」を見返す時の見出しになります。最初は「初回コミット」「ヘッダー修正」のような短いメモで構いません。
git branch -M main
これからの作業を main という名前のブランチで管理します、という指示です。ブランチについては備考で説明しますが、最初のうちは「main という1本道で作業する」と覚えておけば大丈夫です。
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
ローカルのフォルダと、GitHubで作ったリポジトリを紐付けます。URLの部分は、手順2で開いておいたGitHubのページからコピーしてください。
git push -u origin main
いよいよアップロードです。mainブランチの内容を、origin(紐付けたGitHubのリポジトリ)に送信します。初回だけGitHubのユーザー名とパスワード(または認証トークン)の入力を求められるので、画面の指示に従ってください。
コマンドが終わったら、ブラウザでGitHubのリポジトリページを再読み込みしてみてください。先ほどまで空っぽだったページに、自分のプロジェクトのファイル一覧がずらっと表示されているはずです。これでローカルのコードがクラウドに保管されました。
手順5.別のPCで最新コードを取ってきて続きを書く
会社のPCやノートPCで作業の続きをしたい時の手順です。一度だけ「初回ダウンロード」を行い、二回目以降は「最新を取ってくる」だけになります。
初回だけ:リポジトリをまるごとダウンロード(clone)
cd C:\xampp\htdocs
git clone https://github.com/ユーザー名/リポジトリ名.git
htdocs フォルダに移動してから clone を実行すると、リポジトリ名と同じフォルダが自動で作られ、その中にすべてのファイルがダウンロードされます。
二回目以降:最新の変更だけを取ってくる(pull)
cd C:\xampp\htdocs\リポジトリ名
git pull origin main
このコマンド一発で、自宅でアップロードした最新のコードがガサッと降ってきます。FTPでチマチマ落としていたあの時間は、本当に何だったのかと思います。
2.便利な工夫
1.日々の作業サイクルを体に染み込ませる
初回のセットアップさえ終われば、日々の作業はたった3つのコマンドの繰り返しになります。
git add . # 変更したファイルを保存リストに入れる
git commit -m "ヘッダー修正" # メモを付けて履歴として確定
git push # GitHubにアップロード
このサイクルを「キリのいいところで必ず回す」というクセをつけるのが、Gitと仲良くなる最大のコツです。1日の終わりに必ずpushしておけば、翌日どのPCで作業を始めても、最新の状態から再開できます。
2.Cursorのソース管理パネルでマウス操作する
毎回コマンドを打つのが面倒になってきたら、Cursorの左サイドバーにある「ソース管理(Source Control)」アイコンを使ってみてください。Gitアイコンをクリックすると、変更されたファイルの一覧が表示されます。コミットメッセージを入力して「Commit」ボタンを押し、続けて「Sync Changes」ボタンを押すだけで、add → commit → push が一気に完了します。ターミナルにすら触れずに同期が終わるので、コーディングのリズムを崩しません。
3.作業前に必ず git pull、作業後に必ず git push
3拠点で作業する上で一番怖いのが、「自宅で書いたコード」と「会社で書いたコード」がぶつかってしまう「コンフリクト」という現象です。これを防ぐ一番簡単なルールが、作業を始める前に必ず git pull、終わる前に必ず git push という習慣です。これを徹底するだけで、コンフリクトの9割は未然に防げます。
3.備考
1.そもそもGitとは何か
Gitを一言でいうと、「ソースコード専用の、履歴管理機能つきクラウドHDD」です。OneDriveやGoogle Driveとの違いは、「いつ・誰が・どのファイルの・どこを・どう変えたか」を1行単位で記録してくれる点にあります。
ファイルを上書き保存しても古いバージョンが消えず、すべての過去の状態に戻れる。「昨日まで動いていたのに、今日触ったらバグった」という時に、昨日の状態と今日の状態を見比べて、変更箇所だけをピンポイントで特定できる。これがGitの本当の凄さです。単なる同期ツールではなく、開発者の命綱とも言える存在です。
2.GitとGitHubの違い
初心者が最初に混乱するポイントなので、整理しておきます。
| 名前 | 正体 | 役割 |
|---|---|---|
| Git | ソフトウェア(コマンドツール) | 自分のPCにインストールして使う、履歴管理の本体 |
| GitHub | Webサービス | Gitで管理したコードを保管するクラウドサービス |
Gitが「録画機」だとすれば、GitHubは「録画したテープを預けておく貸金庫」のようなものです。Gitは単独でもローカルPC内で履歴管理として使えますが、複数のPCで同期するためにはGitHubのようなクラウド側の保管場所が必要になります。
3.覚えておきたい基本用語
| 用語 | 意味 |
|---|---|
| リポジトリ(Repository) | プロジェクトごとの保管箱。ソースコードと履歴の塊。 |
| コミット(Commit) | 変更を履歴として確定させること、またはその一区切り。 |
| プッシュ(Push) | ローカルの履歴をGitHubにアップロードすること。 |
| プル(Pull) | GitHubの最新履歴を自分のPCに取り込むこと。 |
| クローン(Clone) | GitHubのリポジトリを丸ごと自分のPCに複製すること。 |
| ブランチ(Branch) | 履歴の流れの分岐。実験的な変更を本流から切り離して試せる。 |
| マージ(Merge) | 分岐したブランチを別のブランチに合流させること。 |
| コンフリクト(Conflict) | 同じ箇所への複数の変更が衝突して、自動マージできない状態。 |
4.Git基本コマンドリファレンス
| カテゴリ | コマンド | 用途 |
|---|---|---|
| スタート | git init |
現在のフォルダでGitを使えるようにする(初期化) |
git clone [URL] |
GitHubのリポジトリを自分のPCにコピーする | |
| 日々の保存 | git add . |
すべての変更をステージング(保存準備リスト)に置く |
git commit -m "..." |
メッセージを付けて変更を履歴として確定する | |
git status |
変更されたファイルや準備状況を確認する | |
| 同期 | git push origin main |
ローカルの記録をGitHubに送る |
git pull origin main |
GitHubの最新状態を手元に取り込む | |
git fetch |
GitHubの最新情報を取得(取り込みはしない) | |
| 確認・比較 | git log --oneline |
コミット履歴を1行ずつ簡潔に表示する |
git diff |
まだ保存していない変更箇所の詳細を見る | |
git remote -v |
接続先のGitHub URLを確認する | |
| やり直し | git checkout [ファイル] |
指定ファイルの変更を破棄して最新の記録に戻す |
git reset --hard HEAD |
すべての変更を捨てて最新の記録状態へ戻す | |
git commit --amend |
直前のコミットメッセージを書き換える | |
| ブランチ | git branch |
ブランチの一覧を表示する |
git checkout -b [名前] |
新しいブランチを作成して切り替える | |
git merge [名前] |
別のブランチの変更を今のブランチに合体させる | |
| 設定 | git config --list |
現在のユーザー名やメールアドレスの設定を確認する |
5.なぜFTPやOneDriveではダメなのか
「同期したいだけならOneDriveでも良くないか?」と最初は私も思いました。確かに単にファイルを揃えるだけならOneDriveで十分です。しかしGitとの決定的な違いは、「変更の履歴と理由がすべて残る」という点にあります。
OneDriveでファイルを上書き保存すると、古いバージョンは(厳密にはバージョン履歴機能はありますが)実用的には消えてしまいます。一方Gitは、すべてのコミットが時系列で残り、半年前の状態にも一瞬で戻れます。さらに「何のためにその変更をしたか」をコミットメッセージとして残せるため、後から自分の作業を見返した時にも、他人がコードを引き継いだ時にも、文脈が失われません。FTPでの上げ下ろしと比べれば、もはや別次元の安心感です。
「素人エンジニア」を自称する私でもこの壁を越えられたので、同じように足踏みしている方は、ぜひこの週末にでも挑戦してみてください。一度味わってしまうと、もうSSDを忘れて冷や汗をかく日々には戻れません。


コメント