初心者がVSCodeとBitbucketでGitリモート管理してみた

# 前提条件
* 右記事の設定が終わっている → [初心者がwin10へVSCode(salesforce)開発環境を構築してみた](https://qiita.com/s-takeshi/items/46cc149b068a85c9d019)

:::note info
構築サイト見に行くのが面倒な人用の設定概要
・Windows10 Pro 21H1 64bit
・VSCode, JavaSE11, Salesforce CLI, Git …インストール・簡易設定済
・salesforce組織への接続、Gitのローカル管理済
:::
* Bitbucketのアカウントをもっている

# 設定手順（完全新規Bitbucketにリポジトリ無し）
### 0.Bitbucketにワークスペースとプロジェクトを作成する
:::note info
Bitbucketのアカウント作りたての想定で複数人と共有する時に必要そうなものをまず作成してみる。不要なら飛ばしても問題なし。
:::
* Bitbucketにログインし、「＋」を押してワークスペースを作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/cac28819-373a-053f-fb61-b1f59520c694.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/5c64ff06-e260-6051-49b9-b4526d69a450.png)

:::note info
基本的に公開を目的としていないのでprivateな感じですすめる
:::
* 適当なWorkspace nameを入力して「Create」ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/683a8f3f-e048-d931-f1d4-b8be0aa25422.png)

* 作ったワークスペースでプロジェクトを作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/bdd1a136-440d-76a7-96cd-53588ece6e6f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/cf1493bc-d43e-9c42-8ee1-2d86af307e63.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/a52780c9-3917-d6e9-6cf7-9470a1a76249.png)

### 1.Bitbucket上でリポジトリを作成する
:::note info
先ほど作ったプロジェクトにも「Create repository」ボタンはあるが、TOPからの作成方法を記載する
:::
* Bitbucketにログインし「リポジトリ」を選択　→　右上の「Create repository」ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/59e227e6-461c-e05f-1ed4-e383ebad0057.png)
* 今回のリポジトリ構成は以下の通り
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/c81e43c0-45be-7ef4-9aa1-e380a1476791.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/2bbc609c-dbb5-e510-db64-c7e491906818.png)

### 2.Bitbucketでアプリパスワードを作成する
* 画面左下のアイコンを押して「Personal settings」を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/0d99044b-5d54-5216-badc-7302ce9f9c93.png)
* アプリパスワードを押して「アプリパスワードの作成」ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/795b3aeb-d5f4-5863-1fca-c3081feb1243.png)
* 適当な名前と権限を設定し「作成」ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/edd88d85-326f-f949-2931-f9acd90ef10e.png)
* パスワードが表示されるのでメモしておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/5aa326b7-5165-3999-93a4-0f67df1df2a9.png)

### 3.ローカルで作成したものをBitbucketにあげる
:::note info
今回はSalesforceプロジェクトを管理するので以下の記事参照
・プロジェクト作成等（1.2.を参考に資産を追加する）
:::
* [初心者がwin10へVSCode(salesforce)開発環境を構築してみた](https://qiita.com/s-takeshi/items/46cc149b068a85c9d019)

:::note warn
上記記事の「プロジェクト作成等　3.ソースをローカルGit管理する」の部分からはこちらの設定で進めていく
:::
* 「Ctrl + @」でターミナルを開き、Gitの設定をする

```Git:tarminal
git config --global user.email "mail@sample" // ここで設定するのはBitbucketに登録したアドレス
git config --global user.name "sample name" // Bitbucketに登録した名前
```
* Bitbucketで確認したい場合は画面左下のアイコンを押すと赤枠内に表示される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/d85e3d3e-2152-cb45-c349-486f60d17ca8.png)
* 「Ctrl + Shift + g」で「source control」を開いて「Initialize Repository」を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/d4d5f2f9-0a7f-47fa-9150-27319c1f2b1c.png)
* 「Ctrl + Shift + e」で「Explorer」を開いてファイルを新規作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/2c7b71c5-25c1-1fe9-8ab3-3c39dc4871fd.png)
* 名前は「.gitignore」とする（Gitの管理対象外を設定するためのファイル）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/e87f43b3-195a-8bf2-ac2f-4d1f03b0d6ca.png)
* 内容は適当に管理から外したいものを記載する（お好みで）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/41b90dc7-35d8-9d08-d1be-2983b9f91f07.png)

:::note info
この後Salesforce組織に接続して、管理したい資産をローカルに落とし
初回資産として追加する事も可能だが、今回は何もせずにそのまま進めていく
:::
* 「Ctrl + Shift + g g」で「Source control」を開き「Changes」の横にある「＋」を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/4980663d-1937-5330-6168-2473768e2851.png)
* 上部の入力欄へ適当なコメントを入れて上の「✓」を押すとコミット完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/b8c94b35-393c-ebd0-7999-463f203b652a.png)
* 「Ctrl + @」でターミナルを開きBitbucketへ接続して資産を上げる

```Git:tarminal
git remote add origin https://xxxxx@bitbucket.org/firstsample000/firstrepo.git
git push -u origin master
```
* https://～は各自のリポジトリによるので、Bitbucketのリポジトリ画面を参考に
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/13a10748-2a35-7a16-e160-8e6ae772fee0.png)
* パスワードの入力を求められるので、上でメモしておいたアプリパスワードを入力する
* Bitbucketのリポジトリ画面にローカルの資産が上がっていれば完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/47a2ec8e-2ae0-75a4-6f70-0eab3f3b93aa.png)

####ちょっと小話
:raised_hand:Bitbucketに接続しようとしたらログイン画面が出ました:ghost:
:a:ログインして「Authorize」してください:point_left:

:raised_hand:リモートにpushしようとしたらエラーになりました:skull:
:a:Bitbucketに作成したリポジトリは空の状態ですか:interrobang:
　強制的に追加したい場合は`git push -f origin master`を試してみてください:sunny:
　…ただしBitbucket上の資産は全て消えてなくなります:innocent:
### 4.開発用のブランチを作成する
* Bitbucketの対象リポジトリ画面を開き「ブランチ」画面の右上「Create branch」ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/3cb734e3-f598-6647-529f-9cf1bc2ca3f5.png)
* 以下の画面の通り設定し「作成」ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/80cf887a-bd0a-efe3-693c-b360ae042c10.png)
* 左下の「Repository settings」を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/6dac6339-a8bc-63f6-cb2e-48801bcd0344.png)
* ブランチモデル画面で「Development branch」に「Use specific branch」「develop」を選択して「Save」ボタンを押す 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/a999420c-570d-2737-4351-faef6d764b3e.png)
* 開発をする時はブランチ画面から「Create branch」ボタンを押して以下の様にfeatureブランチを作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2371788/e9107d82-ee8a-aac5-b4da-78a03ccbd933.png)

:::note info
ブランチモデルの参考にしたもの
:::
* [Bitbucket ブランチモデル](https://ja.confluence.atlassian.com/bitbucket/branching-a-repository-223217999.html#branching_model)

# この後の諸々
* リモートで作ったリポジトリをローカルに落としてくる
* ローカルに落としたフューチャーブランチで開発してコミット、リモートプッシュする
* プルリクあげてマージする　…等々…別記事で書きます:information_desk_person: