IntelliJ IDEA - 2022 でコマンドを使用しないで Git を使う【実践学習】

# この記事のターゲット
IntelliJ IDEA - 2022 を使って、業務ですぐに Git が使えるようになりたい人



# この記事で採用しているブランチ戦略
## ブランチ
### main
リリースブランチ
マージコミットのrevert や、全体的な仕様の変更時に直コミット可

### feature/hotfix
機能追加ブランチ/緊急修正ブランチ
新規の機能追加や、リリースした機能の修正時にmain ブランチから切る

## ブランチ戦略
GitHubFlowを採用して、
[![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F408546%2Fa5d1aa6b-d7c9-7fb8-c5b4-dd2e5a57cbed.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=51f82ddd7b93f2008ce41d8211934e3a)](https://qiita.com/tonnsama/items/e9d3c82b65cf5e71ab86#github-flow)

>引用
https://qiita.com/tonnsama/items/e9d3c82b65cf5e71ab86#github-flow



検証環境でのテスト時とプルリクエスト前にリベースをします。
[![](https://cdn-ak.f.st-hatena.com/images/fotolife/b/biglobe-editor2/20220311/20220311214443.png)](https://style.biglobe.co.jp/entry/2022/03/22/090000#:~:text=1.%E3%81%A7%E3%81%AF%E5%AF%BE%E5%BF%9C%E3%81%A7%E3%81%8D%E3%81%A6%E3%81%84%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%E3%80%8C%E6%9C%80%E6%96%B0%E3%81%AE%E5%86%85%E5%AE%B9%E3%82%92%E5%8F%96%E3%82%8A%E8%BE%BC%E3%82%80%E3%80%8D%E3%81%A8%E3%81%84%E3%81%86%E7%82%B9%E3%81%A7%E3%82%82%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%A7%E3%81%8D%E3%80%81%202.%E3%81%A7%E3%83%8D%E3%83%83%E3%82%AF%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%81%9F%E3%80%8C%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%81%AE%E5%B9%B3%E8%A1%8C%E7%B7%9A%E3%81%8C%E9%95%B7%E3%81%8F%E3%81%AA%E3%82%8B%E3%80%8D%E3%80%8C%E3%83%9E%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%81%8C%E5%87%BA%E6%9D%A5%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%80%8D%E3%81%A8%E3%81%84%E3%81%86%E5%95%8F%E9%A1%8C%E3%82%82%E3%80%81rebase%E3%81%A7%E8%A7%A3%E6%B1%BA%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82)
>引用
https://style.biglobe.co.jp/entry/2022/03/22/090000



# 0. 学習前の準備
![Gitリポジトリの複製.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3996132/3b9739e5-0fc5-30af-0a16-d609305a2aed.gif)

1. https://github.com/Yuuka-Koyanagi/sample_repository_learning_Git にアクセス
1. 画面右上のUse this template をクリック
1. - Repository name を入力(例: learning_Git)
   - Privete を選択
1. Create Repository をクリック

※GitHub のアカウントをお持ちでない方は、アカウントの作成をしてください。(無料)

https://docs.github.com/ja/get-started/start-your-journey/creating-an-account-on-github



# 1. クローン
[0. 学習前の準備](#0-学習前の準備)で作成したリポジトリのURLで[クローン](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3)する



# 2. ブランチの作成
1. main ブランチから、[add_apple_menu ブランチを作成](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E6%96%B0%E8%A6%8F%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%82%92%E4%BD%9C%E6%88%90)する



# 3. コミット
1. menu フォルダに、ファイルの内容が空のapple_menu.txtを追加する
    - apple_menu.txt
        ```
        
        ```
1. [コミット](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88)をする
    - コミットメッセージ
        ```
        apple_menu.txt を追加
        ```
1. apple_menu.txtに`アップルパイ`と`リンゴジュース`を追加する
    - apple_menu.txt
        ```
        アップルパイ
        リンゴジュース
        
        ```
    `💡 ファイルの最終行が空白でない場合、そこが最終行か判断できず、最終行を変更した際に余分な差分が出てしまうので、最終行を空白にする`
1. [コミット](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88)をする
    - コミットメッセージ
        ```
        アップルパイとリンゴジュースを追加
        ```
1. apple_menu.txtに`ふじリンゴケーキ`を追加する
    - apple_menu.txt
        ```
        アップルパイ
        リンゴジュース
        ふじリンゴケーキ
        
        ```
1. [コミット](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88)をする
    - コミットメッセージ
        ```
        ふじリンゴケーキを追加
        ```



# 4. コミットの変更
1. apple_menu.txtの`ふじリンゴケーキ`を`リンゴケーキ`に変更する
    - apple_menu.txt
        ```
        アップルパイ
        リンゴジュース
        リンゴケーキ
        
        ```

1. [コミットの変更](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88)をする
    - コミットメッセージ
        ```
        リンゴケーキを追加
        ```



# 5. リセット
1. [リセット](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88)で2つ前のコミット(アップルパイとリンゴジュースを追加)に戻る
    オプション: hard
    
    - apple_menu.txt
        ```
        アップルパイ
        リンゴジュース
        
        ```



# 6. 行ったGit の操作を取り消す
1. [Git コマンドで、2つ前の操作をする前に戻る](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E8%A1%8C%E3%81%A3%E3%81%9Fgit%E3%81%AE%E6%93%8D%E4%BD%9C%E3%82%92%E5%8F%96%E3%82%8A%E6%B6%88%E3%81%99intellij-%E4%B8%8A%E3%81%A7%E6%93%8D%E4%BD%9C%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81git-reset-headn%E3%82%92%E4%BD%BF%E7%94%A8)
    履歴番号: 2
    
    - 最新のコミット
        - コミットメッセージ
            ```
            リンゴケーキを追加
            ```
        - apple_menu.txt
            ```
            アップルパイ
            リンゴジュース
            リンゴケーキ
            
            ```



# 7. マージ
1. add_apple_menu ブランチを add_orange_menu ブランチに[マージする](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%83%9E%E3%83%BC%E3%82%B8)
    - menu フォルダ内容
        - apple_menu.txt
            ```
            アップルパイ
            リンゴジュース
            リンゴケーキ
            
            ```
        - lemon_menu.txt
            ```
            
            ```
        - orange_menu.txt
            ```
            オレンジゼリー
            オランジェット
            オレンジシャーベット
            
            ```



# 8. ブランチ名の変更
1. [add_orange_menu ブランチの名前を add_new_menu ブランチに変更する](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E5%90%8D%E3%81%AE%E5%A4%89%E6%9B%B4)



# 9. ブランチの削除
1. [add_apple_menu ブランチを削除する](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%81%AE%E5%89%8A%E9%99%A4)



# 10. 履歴をきれいにする
1. [インタラクティブなリベース](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%81%AA%E3%83%AA%E3%83%99%E3%83%BC%E3%82%B9%E5%B1%A5%E6%AD%B4%E3%82%92%E6%95%B4%E7%90%86%E3%81%99%E3%82%8B)を使って、コミットを整理する
    - 1つ目のコミット
        - コミットメッセージ
            ```
            リンゴのメニューを追加
            ```
        - apple_menu.txt
            ```
            アップルパイ
            リンゴジュース
            リンゴケーキ
            
            ```
    - 2つ目のコミット
        - コミットメッセージ
            ```
            オレンジのメニューを追加
            ```
        - orange_menu.txt
            ```
            オレンジゼリー
            オランジェット
            オレンジシャーベット
            
            ```



# 8. プルリクエストを出す
1. add_store ブランチから main ブランチへの[プルリクエストを出す](https://style.potepan.com/articles/33561.html#:~:text=pullreq%2Dtest-,%E3%83%97%E3%83%AB%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90,-%E3%81%93%E3%81%93%E3%81%8B%E3%82%89%E3%81%AF)



# 9. プルリクエストを承認する
1. 先ほど作成した[プルリクエストを承認する](https://howpon.com/5895)



# 10. リベースする
1. add_menu ブランチを main ブランチに[リベースする](https://qiita.com/Unagi1091/items/2ad4074bccb236d5da60#%E3%83%AA%E3%83%99%E3%83%BC%E3%82%B9)



# 11. プルリクエストを出す
1. add_menu ブランチから main ブランチへの[プルリクエストを出す](https://style.potepan.com/articles/33561.html#:~:text=pullreq%2Dtest-,%E3%83%97%E3%83%AB%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90,-%E3%81%93%E3%81%93%E3%81%8B%E3%82%89%E3%81%AF)



# まとめ
- コミットは戻りたい単位で行う
- プルリクエストを出す前に、コミットの単位を意味のある単位にまとめる