GitHubをインストールしてVSCodeで連携するまでの手順の記事です。
GitHubのアカウント作成方法は割愛しています。公式の説明を参照してください。
1. VSCodeダウンロード
VSCodeのサイトに行き、「Download for macOS」をクリック。
落としてきたファイルをApplicationフォルダに移してからダブルクリックでVSCodeを開きます。
2. VSCodeでプロジェクトを用意
以下のコマンドを実行し、任意のプロジェクトをGit管理にします。
cd <プロジェクトディレクトリ>
git init
git add .
git commit -m "initial commit"
VSCodeからGitHubへのアクセス許可を求められるので"Authoraize Visual-Studio-Code"をクリックして承認します。
3.GitHubリポジトリとローカルを接続
まず、自分のGitHubアカウントを開いて、リポジトリのURLをコピーしておきます。
以下のコマンドを実行し、ローカルとリモートを紐づけます。
# GitHubのリポジトリを'origin'としてローカルに登録
git remote add origin https://<コピーしたURL>
# 強制的に(-M)mainブランチを作成。今いるブランチがmainという名前に変更される
git branch -M main
# ローカルで作成したmainブランチをGitHubにプッシュ(アップロード)
git push -u origin main
4. VSCodeで連携を確認
左サイドバーの「ソース管理」(分岐している木のようなマーク)でコミット内容が見えればOKです。以降は、VSCode内でコードの変更、ステージ、コミット、プッシュまで完結できます。
5. ブランチ作成
開発する機能ごとにブランチを作成します。よくあるやり方としては、main
からdevelop
ブランチを作成し、develop
からfeature/機能名や開発名
ブランチを作成するやり方です。
〜VSCodeからブランチを作成〜
1. VSCodeでリポジトリを開く
まず、Git管理されているローカルリポジトリのフォルダをVSCodeで開きます。
2. 画面左のソース管理アイコンをクリック
左側のバーにある「ソース管理」アイコンをクリックします。
3. ステータスバーのブランチ名をクリック
VSCodeの画面左下に現在のブランチ名が表示されています。そこをクリックします。
4. 新しいブランチを作成
表示されるメニューの中に「新しいブランチを作成(Create new branch)」があります。そこを選択します。
5. ブランチ名を入力
新しく作成したいブランチ名を入力してEnterキーを押します。
6. ブランチが作成され、そのまま切り替わる
入力した名前のブランチが作成され、作業中のブランチがその新しいブランチに切り替わります。
〜コマンドラインでブランチを作成〜
新しいブランチを作成して同時に切り替える
git checkout <切出し元ブランチ> # <切出し元ブランチ>に移動
git pull origin <切出し元ブランチ> # <切出し元ブランチ>の最新情報を取得
git checkout -b ブランチ名 # <切出し元ブランチ>から新しいブランチ作成
git branch --contains
で現在のブランチを確認できます。
git checkout
でブランチの移動。
6. リモートへpush
push
は、リモート(GitHub)にローカルブランチをアップロードするイメージです。ローカルでdevelop
からfeature/delete_null
ブランチを作成し、push
する場合で考えると以下のようになります。
リモート(GitHub)
origin/main
origin/develop
origin/feature/delete_null ← pushで作られる(developには影響なし)
ローカル
main
develop
feature/delete_null ← 私が今作業しているブランチ
〜VSCodeからpush〜
新しいブランチはローカルで作成されているので、GitHub上にプッシュ(アップロード)する場合は、ソース管理ビューかステータスバーの「…」メニューから「プッシュ」を実行してください。もしくは、コマンドパレット(Ctrl + Shift + P)で「Git: Push」を実行してもOKです。
〜コマンドラインからpush〜
ローカルでnulls_dicts.py
とnull_generator.py
を削除し、sql_writer.py
に変更を加えた場合で見ていきます。まずはgit status
で変更を確認すると、削除されたファイルと変更されたファイルが表示されているのがわかります。
変更に問題がなければpush
します。
git add -A
git commit -m "delete generate null func"
git push -u origin ブランチ名
各コマンドの意味は以下の通りです。
add
: 「このファイルの変更を記録したいです」の意味。=変更準備。-A
オプションで変更(編集・削除・新規)すべてをステージングします。
commit
: 「準備した変更を履歴に残します」の意味。1つのスナップショットとして履歴が残ります。
push
: ローカルの変更をリモートにアップロードします。-u
オプションは、ローカルのブランチとリモートのブランチを紐づける意味があります。一度設定すると、次回からはgit push
だけでプッシュできるようになります。
ちなみに。
develop
から切出したブランチであっても、push
コマンドはdevelop
に影響しません。もしfeature/delete_null
の作業をdevelop
ブランチに反映したいなら、Pull Request(または merge)を使います。
# ローカルでマージしたい場合(例)
git checkout develop
git merge feature/delete_null
または、GitHub上で:
feature/delete_null → developへのPull Request(PR)を作成する
7.コンフリクト...!
たとえば他の人が行った変更がすでにdevelop
に反映されていて、自分も同じファイルの同じ箇所に変更を加えていた場合、feature/delete_null → develop
への Pull Request時にコンフリクトが発生します。「どちらの変更を残すべきかわからない状態」になっているということです。
どちらを残すべきかGitHubが自動で判断できないので手動で修正する必要があります。
# コンフリクト解消の流れ(例)
git checkout develop
git pull origin develop # developの最新を取得
git checkout feature/delete_null
git merge develop # developの変更をfeature/delete_nullに取り込む
# ここでコンフリクトがあればファイルに <<<<<<< >>>>>>> が出るので手動で修正
コンフリクトの手動修正後、あらためてadd
-> commit
-> push
を行ってください。
git add -A
git commit -m "何かしらのコメント"
git push origin feature/delete_null
8. merge
ブランチでの開発が完了したら、変更をmerge
します。
〜VSCodeでのmerge〜
- 左下の 現在のブランチ名 をクリックし、マージ先のブランチ(例:develop) に切り替える
- 再度左下のブランチ名をクリックし、「ブランチをマージ」を選ぶ
- マージしたいブランチ(例:feature/delete_null)を選択
- 自動的にマージされます
〜コマンドラインでのmerge〜
git checkout develop
git pull origin develop
# ローカルでmergeし、
git merge feature/delete_null
# リモートにマージ結果をpush
git push origin develop
9. ブランチ削除
最後に、不要となったブランチを削除します。
〜VSCodeでのブランチ削除〜
〜コマンドラインでのブランチ削除〜
# ローカルブランチ
git branch -d feature/delete_null
-d
: マージ済みなら削除
-D
: 未マージでも強制的に削除
# リモートブランチ
git push origin --delete feature/delete_null