Git初心者向けGitHubの流れ

#Gitの基本事項をGitHubで使用する流れの備忘録

##リポジトリを作る

masterブランチが作成される<img width="678" alt="スクリーンショット 2020-07-09 午後6.43.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670884/5f6ec656-2cb2-fa9a-f308-ae6e1145c1ce.png">

ブランチを切る（今回はtestブランチとする）
masterブランチの内容が複製されたtestブランチが作られる（リモート側で作られる）
リモートで作成完了したtestブランチをローカルにpullする。
testブランチでファイルの内容を修正する（ローカルでの作業）
testブランチでadd→commitする（ここまではローカルでの作業）
testブランチでpushする→pushするとローカルの内容がリモートリポジトリのtestブランチに反映される。

##プルリクエストについて
testブランチで修正した内容をmasterブランチにマージ（統合）したい場合、プルリクエストが必要
testブランチ→masterブランチへプルリクエストを出す
GitHub上のpull requestsタブを選択しマージする
masterブランチへtestブランチでの修正を反映することが出来る。
マージを間違えた時は「revert」ボタンで取り消し可能


##コンフリクトについて
自分の変更をプルリクエストしようとしたら、変更されていて自動ではマージ出来ない時


コンフリクトの例）

<img width="939" alt="スクリーンショット 2020-07-09 午後6.38.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670884/12585aee-e25d-daf3-b9bf-de3538d3c505.png">

GitKrakenを使用。

画像の説明
リポジトリ名（conflict-test)にtest.htmlを作成
test.htmlファイルの入ったdevelopブランチを作成

test.html(developブランチ）

```
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <h1>タイトル</h1>
  <h2>サブタイトル</h2>
  <h3>内容</h3>
</body>
</html>
```

developブランチからfeatブランチを作成し以下の内容に修正

test.html(featブランチ）

```
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <h1>タイトル</h1>
  <h2>サブちゃん</h2>//ここを修正した
  <h3>姉ちゃん</h3>//ここを修正した
</body>
</html>
```

そしてfeatブランチの内容をadd , commit , pushする

developブランチも内容を修正しpushする
今回はサブタイトルの部分をh２タグ→h3へ変更する

```
 <h1>タイトル</h1>
  <h3>サブタイトル</h3>//ここを修正した
  <h3>内容</h3>
```

そしてGitHub上でプルリクエストを
feat→developで実行
すると、、コンフリクト発生！

<img width="983" alt="スクリーンショット 2020-07-09 午後7.44.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670884/43be6d98-d15a-0815-3a79-1250673b98e8.png">

Resolve conflictsを選択
<img width="1295" alt="スクリーンショット 2020-07-09 午後7.45.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670884/c3d8c69f-d486-6ff4-43e8-70bc0b687414.png">

変更箇所が

```

  <h1>タイトル</h1>
<<<<<<< feat
  <h2>サブちゃん</h2>
  <h3>姉ちゃん</h3>
=======
  <h3>サブタイトル</h3>
  <h3>内容</h3>
>>>>>>> develop
```


このように表示される
上がプルリクエスト元のfeatの記述
下がプルリクエスト先のdevelopの記述
<<<<<<　>>>>>>>
で囲われた部分がコンフリクト部分なので、ここを任意の内容に修正して解決する
今回はh２タグをサブちゃん（元はfeatブランチ）とh3タグは内容（元はdevelopブランチ）にして編集する

<img width="1289" alt="スクリーンショット 2020-07-09 午後7.49.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670884/25515ade-0391-08ae-4ab4-e39d0646cd20.png">

このように画面上で不要な文字を削除し、修正を完了→Mark as resolvedを選択
<img width="1332" alt="スクリーンショット 2020-07-09 午後7.50.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670884/c9df6aae-8170-d11c-8e45-40821c7771c8.png">
commit margeを選択

<img width="947" alt="スクリーンショット 2020-07-09 午後7.51.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670884/adece97f-eaa7-4e1f-f871-b13a55b3aa5f.png">
Merge pull requestを選択

<img width="965" alt="スクリーンショット 2020-07-09 午後7.51.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670884/8ec1c923-4b00-19d3-f19e-33790722cac4.png">
任意でコメントを書き（今回は：サブタイトルをサブちゃんにしたと記述）Confirm mergeを選択
<img width="944" alt="スクリーンショット 2020-07-09 午後7.51.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670884/20250bc9-ea26-2de4-d9b8-4c950858f93f.png">
コンフリクトが解消された。

補足：Delete branchを押すと今回のマージ元のfeatブランチを削除することが可能（削除してもその後同じ場所に出てくるRestor branchを選択すると復元可能）
但し、ローカルブランチのfeatは残ったままなので注意。