Vue-CLIでプロジェクトを作成してGitと連携する話

# はじめに

※不備不足、不適切な説明がありましたらご指摘ください。

Vue-CLIで作成したプロジェクトのソース管理をGitで行いたいと思いました。
## 開発環境
・OS：Windows 10 Home
## バージョン情報
node.js、npm、vue-cli、gitのバージョンは以下の通り。

```powershell:powershell
$node --version
v16.13.0

$npm --version
8.1.0

$vue --version
@vue/cli 4.5.15

$git --version
git version 2.33.0.windows.2
```

## vueのプロジェクト作成
powershellで以下のコマンドを入力します。`simply`がプロジェクト名になります。

```powershell:powershell
$vue create simply
```

`Please pick a preset`では`Manually select features`を選択して、以下のように設定しました。

```powershell:powershell
? Please pick a preset: Manually select features
? Check the features needed for your project: Choose Vue version, Babel, Router, Vuex, Linter, Unit, E2E
? Choose a version of Vue.js that you want to start the project with 3.x
? Use history mode for router? (Requires proper server setup for index fallback in production) Yes
? Pick a linter / formatter config: Prettier
? Pick additional lint features: Lint on save
? Pick a unit testing solution: Jest
? Pick an E2E testing solution: Cypress
? Where do you prefer placing config for Babel, ESLint, etc.? In package.json
? Save this as a preset for future projects? No
```

`cd simply`でディレクトリを移動して`npm run serve`を入力します。
`http://localhost:8080/`を開くと`Welcome to Your Vue.js App`の画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/11c19dc9-cd67-036c-fa0b-d598d1b8f9bc.png)

## gitにコミット
まずはgitHubのアカウントを作成してください。ここはいろんなサイトで紹介されているので省略します。
続いてgitHubとVSCodeの連携を行います。 [こちら](https://breezegroup.co.jp/202102/vscode-github-windows/)が分かりやすいので参照してください。
VSCodeを開いて画面左上の`ファイル`→`フォルダーを開く`から先ほど作成した`simply`のフォルダを開きます。
続いて、左ペインの中から`ソース管理`を選択すると「変更の発行」というボタンが表示されていますので、こちらをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/625e1cca-eee4-eca7-1e24-d9ed6cd148a3.png)

gitHubのサインインを求められるので、「許可」します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/cbcb14d4-10c1-03ed-d915-83eee8e06f1a.png)

VSCodeがgitHubにアクセスするのを許可するかを聞かれるので、`Continue`を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/1869576e-c299-2ddc-20b8-d7a2b93075b1.png)

もう一度サインインを求められるので、サインインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/dfb2e7a3-7a53-5fd0-9bc2-f22096b16ce8.png)

成功するとホームページからVSCodeを開こうとしますので、開きます。
VSCode上でこのような画面が表示されるので、`開く`を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/aea0ea57-51a4-b15a-cc5a-8698705caa24.png)

画面上に`private repository`と`public repository`のどちらでプッシュするかを聞かれるので、今回は`private`を選択します。gitHub上でprivateとpublicの変更ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/6ce332d2-ddce-a0e4-d630-ab2ba85c7504.png)

またサインインを求められるので、`Sign in with your browwer`でサインインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/915cc2d9-31f5-a5be-3719-8736868e4ae8.png)

連携がうまくいくと以下の画面が表示されます。「画面を閉じてアプリケーションに戻れ！」といわれるので指示に従います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/29dd20b6-c832-8ee1-a757-be922dd08a1b.png)

VSCodeに戻ると画面右下に正常にリポジトリが作成された旨のメッセージが表示されます（スクショ撮り忘れた）。
gitHubにログインしてみると`simply`というリポジトリが作成されています。

## VSCodeでのプル・コミット・プッシュの解説
### プル
プルとは、リモートリポジトリからコンテンツをフェッチしてダウンロードし、そのコンテンツと一致するようローカルリポジトリを即座に更新するコマンドです。
ソース管理横[…]を押し、`「プル、プッシュ」→「プル」`を押すと実行できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/d93ace5c-89f5-a69c-ef5b-c13c9dffe02d.png)

### コミット
コミットとは、追加・変更したファイルをgitに登録するためのコマンドです。
試してみます。VSCodeで`src->App.vue`のtemplateタグの中を以下のように修正して保存します。h1タグでHellow, world!を追加しています。

```vue:App.vue
<template>
  <h1>Hello, world!</h1>
  <div id="nav">
    <router-link to="/">Home</router-link> |
    <router-link to="/about">About</router-link>
  </div>
  <router-view />
</template>
```

ソース管理のペインを押すと「変更」の部分に先ほど修正したファイル名が表示されます。こちらを押すと、先ほど追加した「Hello, world!」が右側のタブに表示されます。左が修正前、右が修正後です。
ファイル名横の`＋`を押して変更をステージします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/be0d3ff0-1167-fac7-6548-825e0dd94c0b.png)
ステージすると、「ステージされている変更」の下にファイル名が表示されます。
上のフォームにコミット時のメッセージを入力します。メッセージを入力しないとコミットできません。今回は「Hello, world!の追加」とします。
「ソース管理」横の`✓`を押すと、コミットが行われます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/2f57ed01-1888-7e96-abb2-3bce32a6a92d.png)

### プッシュ
プッシュとは、ローカルの変更を中央リポジトリに公開・アップロードするときに使用するコマンドです。
実際に試してみます。
先ほどコミットした後、「変更の同期」というボタンが表示されます。こちらのボタンを押します。または、ソース管理横の[…]を押し、`「プル、プッシュ」→「プッシュ」`を押すとプッシュが行われます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/bbd1596c-d4e4-d73d-d65d-468d17caf7bd.png)
プッシュが実行されたら、gitHubで確認してみましょう。先ほどの`Hello world!`がプッシュされているのが分かります。

## 便利な拡張機能紹介
gitに関する便利な拡張機能を紹介します。

### Git Graph
gitのコミットグラフをいい感じで表示してくれます。
使い方は、ソース管理ペインから[...]の一個左のマークを押すだけ。GitGraphのタブが開いてコミットのグラフをわかりやすく表示してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/6cb14ca0-680d-16f0-d2bb-f11107e82206.png)

### GitLens — Git supercharged
VSCodeのgitの機能をいろいろ強化してくれます。いろんなことやってくれるので、詳しくは [こちら](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)を確認してください。
個人的にありがたいのは、その行を誰がいつ、どのコミットで修正したのかを行の後ろに表示してくれるところ。複数人で開発しているとこれがかなりありがたい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1102063/93ae5523-b1e4-ab2d-0c4f-eeced60cf498.png)

# 終わりに
個人開発の準備はできたので、これでなんか作っていこうと思います。
誰かの参考になれば幸いです。