GitとGitHubの連携とpushまでの手順・運用フローのメモ
こんにちは。いっきー(@ikirin_web)です。
今回は、既存のプロジェクトにGitを導入してGitHubへpushするまでの手順をまとめます。
事故をきっかけにその日のうちに導入した際の備忘録です。事故の経緯は別の記事に書いています。
→ VS Codeでファイルが消えた話|ローカル履歴機能に救われました
前提条件
この手順は以下の状態を想定しています。
- Gitがターミナルに入っている
- GitHubアカウントを持っている
- 既存のプロジェクトフォルダがある
プロジェクトにGitを設定する
git init と .gitignoreの作成
1つ1つのコマンドをターミナルで実行していきます。私は、VS Codeに内蔵されているターミナルを使用しました。
① 作業フォルダに移動する
cd 作業フォルダのパス
② Gitを初期化する
git init
③ .gitignoreを作成して管理対象外のファイルを指定する
echo "node_modules/" > .gitignore
echo ".DS_Store" >> .gitignore
.gitignoreには、Gitで管理する必要のないファイルやフォルダを記載します。自分の環境に合わせて追記してください。
④ 変更ファイルをステージングエリアに移す
git add .
⑤ 最初のcommitを記録する
git commit -m "first commit"
ブランチ名をmainに統一する
git init後にこのような表示が出ることがあります。
hint: Names commonly chosen instead of ‘master’ are ‘main’, ‘trunk’ and ‘development’.
デフォルトはmasterになっているけれど、main・trunk・development等がありますよ、と親切に教えてくれています。
GitHubは2020年頃からデフォルトブランチ名をmainに変更していったんだそうです。
なので、ローカルも合わせておきましょう。
git branch -m main
上記のコマンドは、いま作ったブランチの名前をmainに変える操作です。
加えて、今後 git init するたびに自動で main になるよう、以下のコードを実行しておきます。
そうすると、パソコンを買い替えない限り main に設定できるので一度の手間で済みます。
git config --global init.defaultBranch main
これで既存プロジェクトをGit管理下におく設定の完了です。
次は、GitHubと連携をさせて自分のパソコンとWeb上の両方で管理できるようにしていきます。
GitHubとの連携(SSH鍵の設定)
ローカルのプロジェクトにGitを入れただけでは、万が一パソコンが壊れた時に復元ができません。GitHubと連携することでリモートにも履歴を残すことができます。
GitHubへの接続にはSSHを使います。そうすることで、一度の設定で毎回のパスワード入力が不要になります。
SSH鍵の生成
まず鍵があるか確認します。
ls -la ~/.ssh/
No such file or directory と出た場合は新規生成します。
以下、新規生成する場合にターミナルへ打ち込むコマンド
ssh-keygen -t ed25519 -C "GitHubに登録しているメールアドレス"
3つ質問されますが、すべてそのままEnterで問題ありません。
完了するとアスキーアートが表示されますが、これは鍵の指紋を視覚化したもので特に意味はないです。
公開鍵をGitHubに登録する
生成された鍵はペアになっています。
id_ed25519(秘密鍵)→ 自分のパソコン上に保管、絶対に外に出さないid_ed25519.pub(公開鍵)→ GitHubに渡してOK
公開鍵をクリップボードにコピーします。cmd + C でもいいですし、以下のコマンドでもコピーが可能です。
pbcopy < ~/.ssh/id_ed25519.pub
GitHubへログイン後、 Settings → SSH and GPG keys → New SSH key を開き、コピーした内容を貼り付けて登録します。
接続確認
再びターミナルへ戻って以下のコマンドを実行します。
ssh -T git@github.com
Hi <ユーザー名>! You've successfully authenticated...
と出れば成功です。
これで、ローカルとGitHubの連携が完了しました。
リモートリポジトリへのpush
最後にローカルでGit管理しているプロジェクトをリモートへ反映していきます。
GitHubで以下の手順でリポジトリを作成します。
- 右上の「+」→「New repository」
- Repository name を入力(例:project-name)
- Description を入力(任意。例:コーディング練習用)
- 「Private」を選択
- Add README → Off
- Add .gitignore → No .gitignore
- Add license → No license
- 「Create repository」ボタンをクリック
ローカルにすでにcommitがある状態でGitHub側にファイルが作られると、pushの際に衝突してエラーになります。
リポジトリが作成できたら、ターミナルで以下を実行します。
① リモートリポジトリを登録する
git remote add origin git@github.com:<ユーザー名>/<リポジトリ名>.git
② ローカルの履歴をGitHubに反映する
git push -u origin main
-uは、このローカルのmainブランチを、originのmainと紐付ける操作です。
GitとGitHubの連携とpushまでの手順・運用フローのメモ
-uを一度設定すると、2回目以降は以下の3ステップで反映できます。
1. 変更ファイルをステージングエリアに移す
git add .
git add . の「.」は全ファイルを対象にするという意味です。特定のファイルだけ対象にしたい場合は「.」の部分をファイル名に変えます。(例: git add ファイル名.scss)
2. commitを記録する
git commit -m "何をしたか"
3. GitHubに反映する
git push
導入後の日常的な運用フロー
導入が完了したら、以下の流れで日常の作業を回せます。
ブランチを切らない場合(シンプルな作業)
git checkout main
git pull
作業後は3ステップで反映します。
git add .
git commit -m "何をしたか"
git push
ブランチを切る場合(機能ごとに分けたい時)
git checkout main
git pull
git checkout -b feature/<作業名>
作業後は3ステップで反映します。
git add .
git commit -m "何をしたか"
git push -u origin feature/<作業名>
GitHubでPR作成 → マージ後、後片付けをします。
git checkout main
git pull
git branch -d feature/<作業名>
git fetch --prune
まとめ
今回やった手順をざっくり振り返るとこうなります。
git init と.gitignoreを作成- ブランチ名を
mainに統一 - SSH鍵を生成してGitHubに登録
- GitHubでリポジトリを作成
git pushでリモートに反映
上記の3〜5の手順で、GitとGitHubの連携が完了します!1と2に関しては、新規プロジェクトを立ち上げるときに1回だけ行うといいです。
コマンドが多くて覚えるのが大変ですが、これから新規プロジェクトを始めたら必ずGit管理していこうと思います。
最後まで読んでいただきありがとうございます。