LoginSignup
0
0

More than 1 year has passed since last update.

基本的なGithub Flowを通して、共同開発に必要なGithubの基本を学ぶ

Last updated at Posted at 2022-04-24

目的

この記事では、これからGithubを使ってみようという方、共同開発を行う方に向けて、開発に必要な一連の手続きをコマンド代表的なコマンドと共に説明していきます。
Githubからローカルリポジトリへの同期手続きから、実際に開発する際に必要となるGithubフローを取り上げ、理解を深めていきます。

Githubとは

Git管理したファイルを共有・バージョン管理をするインターネットサービスです。
今回の記事は、Gitの基本的な知識があることを前提に記載していますので、そもそものGitについて知りたい方は、前回掲載した【初心者向け】Gitの基本とできること【コマンド集】という記事をご一読の上戻ってくるとスムーズかと思います。

アカウント作成

Githubを利用するには、まずアカウント登録を行う必要があります。
Githubの公式ページに移動して、右上のSignUpからアカウント登録を行いましょう。
メールアドレスとユーザー名を入力して、受信したメールから承認を行えば簡単にアカウントを登録することができます。
image.png

リモートリポジトリを作成する

アカウントを作成できたら、ローカルリポジトリと同期するための領域になるリモートリポジトリを作成します。リモートリポジトリは基本的に読み取り専用のため、第三者に編集を許可したい場合は、事前に招待する必要があることを覚えておきましょう。
image.png

Githubでの操作

リモートリポジトリをクローンする

リポジトリのCodeドロップダウンをクリックすると下のようなクローン用のリンクが表示されますので、こちらおコピーしておきましょう。
image.png
ターミナルに戻って以下のコマンドを打ちます。

$ git clone 先ほどコピーしたURL

実行すると、実行したディレクトリの配下に、リモートリポジトリ名のディレクトリが作成されます。
早速、コミット履歴を見てみましょう。
image.png

ここでいきなり、mainとかoriginとか身に覚えのない単語が出てきますが、全然難しくないので覚えてしまいましょう。

  • origin
    • ローカルリポジトリから見た、リモートリポジトリの名前です。
  • main
    • デフォルトブランチの名前です。
      • 元々Githubもmasterでしたが、差別的な言葉を排除する目的で2020/10に変更されました。
      • gitでは、masterブランチと呼んでいましたが、Githubではmainという名前になります。
  • origin/main
    • originリポジトリのmainブランチのことを指します。読み取り専用のブランチなので、このブランチにSwitchしたりといった操作はできません。
    • リモートのブランチを表現しているので、リモート追跡ブランチと呼ばれます。
  • origin/HEAD
    • リモートリポジトリoriginが指しているHEADです。

リモート追跡ブランチを表示する

$ git branch -r

リモートリポジトリの一覧を表示する

$ git remote    
$ git remote -v    //-vオプションでリモートリポジトリのURLを確認することができます。

リモートリポジトリの最新状態で、ローカルリポジトリを同期する

fetchコマンドで、リモートリポジトリの内容を同期した後に、mergeを行なっていますが、これはfetchしただけでは、
ローカルリポジトリのHEADは変わらないためです。origin/mainブランチをマージすることで、リモートリポジトリのHEADとmainブランチのポインタも同期します。

$ git fetch [origin]    //originはデフォルトで指定されるので省略可能
$ git merge origin/main

もしくは、以下のpullコマンドであれば、fetchとmergeをまとめて実行してくれます。

$ git pull
$ git pull --rebase    //rebaseオプションを付けると、リベースがおこなわれ、コミットログが綺麗になります。

リモートリポジトリにプッシュしましょう

$ git push origin main    //originおよび、mainはデフォルトで指定されるので省略可能

タグを追加する

$ git push origin タグ名

タグを削除する

$ git push origin --delete タグ名

Github Flow/Feature Branch Flow

Githubを使って、共同開発を行う際に標準となる型(考え方)のようなものです。
新機能の開発やバグ修正の際は、ブランチを切って作業することになります。
その際に、リモートリポジトリにリモート追跡ブランチを追加したり、プッシュしたりする必要がありますので、
以下に基本的なフローと利用するコマンドを記載しておきます。

1.ローカルブランチと、リモートブランチの対応関係を確認する

以下のコマンドで、ローカルブランチと、リモート追跡ブランチの対応状況を表示することができます。

$ git branch -vv

2.pushする際に、リモート追跡ブランチを作成する

ローカルリポジトリ内で初めてブランチを切った場合は、リモートリポジトリ上にはリモート追跡ブランチがありませんので、追加する必要があります。

$ git push -u origin ローカルブランチ名

この後の作業は、Github上でプルリクエストを作成して、承認されたらGithub上でマージが実行されます。

3.プルリクエストを作成する

image.png

4.プルリクエストを承認する

image.png

5.「Confirm merge」ボタンをクリックしてコミットします。

image.png

6.コミットされると、ブランチの削除を促されますので、Deleteします。

image.png
マージされたら、ローカルリポジトリ同様にリモート追跡ブランチを削除しましょう。

7.リモートリポジトリでコミットされた結果を、ローカルリポジトリに同期します。

$ git switch main    //ローカルリポジトリのブランチをmainに変更します
$ git pull
$ git branch -d プッシュしたブランチ名    //一つ前のpullコマンドでfetchとmergeが実行されているので不要なブランチを削除します

8.リモートリポジトリで、既に削除されたリモート追跡ブランチをローカルリポジトリで一括削除する

$ git remote prune origin

これで、リモートにプッシュした後、ローカルリポジトリでも同じ状態になりました。

まとめ

この記事では、GithubへのPushやPullを題材にして、ローカルリポジトリとリモートリポジトリの一連の操作を説明しました。
あとは、実践で手を動かしながら身につけていきましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0