Git・Github基本的な使い方

# はじめに
　久しぶりにGitを使ってソースコードを管理しようと思ったのですが、使い方を忘れてしまっていたので、自分用のメモかねてGit、Githubの使い方を載せておきます。

※ご自身のPCにGitのインストールし、GithubアカウントにSSHキーの登録を済ませている必要があります。

## 改行コード変換について（やらなくても良い）
WindowsとMacなどOSが違う場合、改行コードが異なるため、Gitの設定で改行コードを自動変換できるようにしておく方が良いらしいです。

**設定確認コマンド**
```
git config --global -l
```

**設定の表示**
```jsx
core.editor="C:\Users\YourName\AppData\Local\Programs\Microsoft VS Code\bin\code" --wait
core.autocrlf=false  /* ←改行コード自動変換設定 */
core.quotepath=false
user.email=test_user@example.comm
user.name=username
```

上記のように「core.autocrlf=false」になっている場合は自動変換設定がOffになっているため、設定の変更を行った方が良い

※Windowsの場合の設定です。MacなどのPCの場合は「true」ではなく「input」とするのが良いそうです。

**設定変更コマンド**
```
git config --global core.autocrlf true
```

上記を実行後、再度「確認コマンド」で設定がtrueになっていれば完了です。

# Githubのリポジトリ作成方法

1. GitHubへログイン
2. Gitリポジトリ作成
    
    リポジトリ一覧の「New」ボタンをクリック
    
    ![画面イメージ-git使い方.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/22954ad8-020f-7bd1-2464-a0d0a121bfe7.png)
    

3. リポジトリ設定
    a. リポジトリ名、説明、公開設定を設定する。※公開：public、非公開：private
        ![画面イメージ-Git使い方２.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/1aaa6400-cbff-c7c8-d114-ae52ef09489a.png)
        
    b. 下にスクロールすると、使用言語やREADME fileなどの選択がありますが、何もせずデフォルト設定のままで「Create Repository」をクリックします。
        ![画面イメージ-Git使い方３.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/cd7c09ee-1f04-d515-3266-0278c980edf3.png)
        
4. ローカルリポジトリとの紐づけ
    基本的には下記の上の「ローカルリポジトリの作成からpushまで」の手順を使います。
    
    ※初心者の方は`git add README.md` の部分は解説を見た方が良いかもです。
    
    ![画面イメージ-Git使い方４.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/25d15111-dc92-0b9b-7066-9b7df88b6f8c.png)

    
**解説**
        
※「ローカルリポジトリの作成からpushまで」の手順の解説です。
        
1. ターミナルを開き、ローカルリポジトリまで移動してください。
    ```
    cd C:\your_local_repository_path\  ←ローカルのパス
    ```

2. リポジトリ内に「README.md」（マークダウンファイルを作成する）コマンド
    ※「README.md」は作らなくても大丈夫です。
    ```
    echo "# test" >> README.md
    ```
           
3. ローカルリポジトリの初期化
    ```
    git init
    ```

4. ファイルをリポジトリのステージに乗せる
    ※上記手順では「`git add README.md`」となっていますが、すべてのファイルをステージに乗せるには、下記のコマンドに変えます。
            
    ```
    git add .
    ```
    
5. リポジトリへコミットする
    
    ```
    git commit -m "first commit"
    ```
    
6. ブランチ名を強制的に「main」に変更します。
    
    ```
    git branch -M main
    ```
    
7. リポジトリをステージに乗せる
    
    ```
    git remote add origin git@github.com:username/test.git 
                            👆ここはユーザーによって変わります。
    ```
            
8. ローカルリポジトリをリモートリポジトリにプッシュします。
            
    ```
    git push -u origin main
    ```
            
5. 上記手順でリモートとローカルの紐づけし、ブラウザを更新すると、リモートリポジトリが表示されます。これで紐づけは完了です。
    
    ![画面イメージ-ページ8.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/5c286eb7-fff3-113e-9f15-61e0af6294ac.png)

    

## ブランチを作らない運用

上記の「Githubのリポジトリ作成方法」特に詳しい記録やブランチを作る必要がなければ、移行下記の手順で、リポジトリの変更を保存できます。

**手順**

1. ローカルリポジトリの編集
2. 変更をステージに乗せる
    
    ```
    git add .
    ```
    
3. コミットする
    
    ```
    git commit -m "（ここ内容は何でも良い）"
    ```
    
4. プッシュする
    
    ```
    git push
    ```
    
5. リモートリポジトリ確認

# ブランチを使用する運用

ブランチとは複数人開発で同時に開発を進める際に、他の改修によって影響を受けないよう、作業場を分けるためのものです。

## ブランチを作ってみる

作成コマンド

```
git branch <branchname>
```

ブランチへの移動コマンド

```
git checkout <branchname>
```

作成と移動を同時に行うコマンド

```
git checkout -b <branchname>
```

ブランチの削除コマンド

※別ブランチへ移動している必要があります。
※ローカルとリモート両方のブランチを削除する必要があります。

ローカル

```
git checkout -d <branchname>
```

リモート

```
git push origin --delete <branchname>
```

ブランチにて初めてのプッシュ

最初のブランチ作成後、「ブランチを作らない運用」の手順でリモートへプッシュすると、下記のようなエラーが出るため「**←ココ**」の部分をコピーし、再度実行してください。

```
fatal: The current branch test has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin <branchname>  **←ココ**

To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'.
```

ブランチとメインブランチのマージ

上記手順で、プッシュしたブランチをmainブランチへマージする方法

1. 最新のmainブランチに移動する
    ```
    git checkout main
    git pull ←最新の状態をリモートから取得
    ```
2. 他のブランチを作り、移動する
    
    ```
    git checkout -d test_branch
    ```
    
3. ファイルを編集後、リモートへプッシュ
    - 方法
        1. 変更をステージに乗せる
            
            ```
            git add .
            ```
            
        2. コミットする
            
            ```
            git commit -m "test_commit"
            ```
            
        3. プッシュする
            
            ```
            git push
            ```
            
4. Githubへアクセスし、ボタンをクリック
    
    ![画面イメージ-ページ9.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/c7f5aac1-9da8-7406-1839-bb833e146d6d.png)

    
    - ※上記の表示がない場合
        
        下記の手順で新しいプルリクエストを作成してください。
        
        ![画面イメージ-ページ10.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/ef5ccf77-4377-c04b-b18c-bc18b005c903.png)

        
5. プルリクエスト作成
    
    ※作成したIssueを紐づけたい場合は、Developmentから紐づけることも可能です。
    
    ![画面イメージ-ページ11.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/a42bd211-ba5e-32c7-885a-43a74177a836.png)

    
6. マージする
    
    ※マージせず、プルリクエストのみを閉じることもできます。
    
    ![画面イメージ-ページ12.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/8024ac6e-68a1-6172-8f07-7ceb362cbd4a.png)

    
    Confirm mergeをクリック
    
    ![画面イメージ-ページ13.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/24794677-c267-371b-a93f-1ac78e5b0e3d.png)

    
    下記の表示が出れば完了です。
    
    ![スクリーンショット 2024-08-16 122640.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3627984/f8be033e-4c03-b38c-34c4-8262c480f545.png)


## 最後に
　以上で終了です。上記のコマンドなどの操作方法を覚えておけば、最低限のリポジトリ管理は大丈夫だと思うのであまりGitを触ったことがない人のお役に立てれば幸いです。