初心者によるGitとSourceTreeの基礎概念とインストールの流れ

# Gitとは
**→　独自でも並行開発でも、ソースコードのバージョン管理システムです。**
まだGit学んでいないとき、開発でファイル編集したらv1、v2...などで編集した跡を残していたという。これは一つのファイルならまだいいけれど、複数ファイルの編集だと、

例えばプログラムv1では、ファイルAがv4で、ファイルBがv3と組み合わせ、
何日後
修正したプログラムv2では、ファイルAがv5で、ファイルBがv2.5と組み合わせなど。
　↑ファイルB v3でバグ発見、前のバージョンに復帰して修正を行った。

このように新しいバージョンと古いバージョン、そして修正したバージョンがすべて混在して、終いには混乱を招いて、開発効率も下げてしまいます。（並行開発なら開発者による命名規則も、開発している機能も違っていて、一つのファイルに統合するとき、さらにしんどくなります。）

## Gitを使えば

- バージョンには、一意の命名規則が使用される（SHA-1）
- バージョン各自の日付や編集メッセージなどの履歴が管理できる
- 新旧バージョンの間、復帰することができる
- 入れたくない、無視したいファイルも管理できる
- 編集履歴が共有する
- 並行開発で開発・修正した機能、最終的に一つに統合できる

## 初期設定
### 環境＆ツール
- Windows 10
- Git-bash 2.35.1.windows.2

### 簡単な流れの紹介
（いまだに独自開発なので、複雑のセッティングはやったことはありません。）
- Sign up for GitHub
- Personal access token (PAT)
    - Githubは2021/8からパスワード認証を廃止。これによりアクセストークンが必要になった
    - パスワードはトークンの更新時にGithubに入力する必要があります。
    - 以下の手順を書いた時点は2022年3月です。
    - GitHub右上のアイコン　⇒　Setting　⇒　左側一番下のDeveloper settings　⇒
      Personal access tokens　⇒　Generate new token　⇒　Noteにメッセージ　⇒
repo & delete_repoをチェック　⇒　Generate token
![Screenshot8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2477698/f950b4ff-1534-58a1-a77f-031614b78e31.png)
![Screenshot9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2477698/bddf4fd2-af1f-1318-8a75-bfbdf2c02de5.png)
チェックしたところの参考資料は以下になります。
[OAuth Appのスコープ - GitHub Docs](https://docs.github.com/ja/developers/apps/building-oauth-apps/scopes-for-oauth-apps)

    - 以上の手順が終わったら、画面にメッセージとトークンが出てきます。
      >Make sure to copy your personal access token now. You won’t be able to see it again!
この画面から離れたら二度とこのトークンと見えないので、ちゃんと保存してください！
このトークンは、これからGitコマンド使用する時にパスワード代わりによく使われるので、
ぜひ大切に保管してください。
    - **Personal access tokensの詳細はこちらのGithubドキュメントにご参照ください。**
[個人アクセストークンを使用する - GitHub Docs](https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)

[Personal access tokenの使用について](https://qiita.com/hu-yu/items/f81e94e00d0cf223cdc8#personal-access-token)

- Git Bashをインストール
    - インストール先のパス（path）は全英語が推奨
    - [インストール先を変更したいなら](https://qiita.com/hu-yu/items/e390eb3f71993dd378ed#git-bash%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%85%88%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%81%84%E3%81%AA%E3%82%89)
- インストールは基本的にNext>を押しますが、
    - 「Which editor would you like Git to use?」
    - →自分はエディタとして**VS Code**を使ってるので、「Use Visual Studio Code as Git’s default editor」を選択しました。
- Git Bashをオープン、いざGitの世界へ！
    - git --versionでバージョン確認する
    - git config --global user.name “Githubで登録したユーザ名”
    - git config --global user.email “Githubで登録したemail”
    - git config --list
    - ↑これ入力したら、ログからuser.emailとuser.nameを見つけ、入力間違っていないならOK！


### Git Bashインストール先を変更したいなら
  - **Step1** インストールしたいパスを指定（全英語が推奨）、基本的にNext>押して進む
  - **Step2** インストール完了後、スタートからGit Bashを見つけて右クリックしファイルの場所を開く
  - **Step3** Git Bashに右クリックプロパティ　⇒　リンク先では「--cd-to-home」を消去、作業フォルダーは「%HOMEDRIVE%%HOMEPATH%」から「変更されたインストール先」　⇒　適用＆OK、これで終わり。
  - OS環境がW10 Home、しかし管理者じゃない場合は↓
  - コマンドプロンプトを管理者として実行し、「net user administrator /active:yes」を入れて、左下のスタートからAdministratorに一度ログインして、あとは**Step2**と**Step3**を踏まえばいいんです。終いは元のユーザに戻って、コマンドプロンプトに「net user administrator /active:no」を入れれば終わります。
  - ほかのOS環境なら、自分が管理者になれる方法を見つければ解決できると思います。

自分のPCはほかの方からの譲り受けたもので、いろんな方法を使ってもユーザ名義が変更できなくて、初期設定は大変でした。。最後はこの方法にたどり着いたけれども、同じ悩みの方がいてお役に立てればと、ここに書きました。

# GUIがいいならSourceTree
ここはMacもWindowsも使えるGitのGUI、SourceTreeです。
## 初期設定
### 環境＆ツール
- Windows 10
- SourceTree v3.4.7

### 簡単な流れの紹介
- インストール
    - Bitbucket Cloud アカウント持っていないならSkip
- Registrationで詳細オプションは特に変更なしならほっといて次へ
- usernameとemailを入力、次へ
- Load SSH Key?
    - あとで必要なときまたセッティングできるから、とりあえずNoで進む
- ツール　⇒　オプション　⇒　認証　⇒　追加
    - ホスティングサービス：GitHub
    - 優先するプロトコル：HTTPS
    - 認証：OAuth
    - ユーザー名：Githubで登録したユーザ名（入力できないのが正しい）
        - 下のOAuthトークン読み込みを押す前に、もしデフォルトブラウザはChromeなら接続が失敗するから、一度FireFoxに変更してみてください。
    - 終わったらユーザ名が入力され、OKを押せば準備完了です。

SourceTreeを使う一番の目的はブランチの可視化と、Commit Message（説明）やファイルの編集履歴が一目瞭然のところです！例えば、開発ブランチの樹状図を押せば、左下にはどんなファイルが編集されたか、そして右下にはコードがどのように編集されたかすぐわかります。これがGUIの一番のメリットだと思います。
（下の例は[Markdown-here](https://github.com/adam-p/markdown-here)からcloneしたものです。）
![SourceTree_sample1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2477698/d801cc82-2a6d-f4a3-5eaf-d8cfc53e3adc.png)
次回は初心者によるGitBashとSourceTreeの使い方をまとめていきたいと思います。

# 参考資料
[Git for windows](https://gitforwindows.org/)
[Sourcetree | Free Git GUI for Mac and Windows](https://www.sourcetreeapp.com/)
[OAuth Appのスコープ - GitHub Docs](https://docs.github.com/ja/developers/apps/building-oauth-apps/scopes-for-oauth-apps)
[個人アクセストークンを使用する - GitHub Docs](https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
[Markdown-here](https://github.com/adam-p/markdown-here)