確認中 : Mac向けチーム開発
目次
- 1 概要
- 2 補足資料
- 3 リポジトリ (レポジトリ) 作成
- 4 Gitのインストール
- 5 Githubで、パーソナルアクセストークンを登録 ( 少なくともMacを使う人は必須 )
- 6 SourceTree
- 6.1 インストーラーのダウンロード
- 6.2 SourceTreeのインストール
- 6.2.1 Macの場合
- 6.2.2 Windowsの場合
- 7 SourceTreeからGithubに接続
- 7.1 Macの場合
- 7.1.1 Githubに公開鍵を登録
- 7.2 Windowsの場合
- 7.1 Macの場合
- 8 Githubのリポジトリを複製(クローン)
- 9 ブランチを切る
- 10 コミット
- 11 プルリクエスト(Github)
- 12 マージ(Github)
- 12.1 main ブランチの確認(Github)
- 13 SourceTreeに反映
- 14 issue を登録 (Github)
- 15 プロジェクト (Github)
- 15.1 プロジェクトとカンバンボードの作成
- 15.2 issue の紐づけ
- 15.3 カンバンボードでissueの確認
- 16 作業管理にTrelloを使う場合のGithub連携
概要
ここでは、ソースコード管理プラットフォームのGithubと、Gitリポジトリ向けのクライアントアプリケーションの「SourceTree」を用いて、チーム開発で必須となるGithub操作について説明します。
SourceTreeは、Githubの他、GitlabやBitbucket Serverといったオンプレミス環境やプライベートクラウド環境向けのGitリポジトリ対応のソースコード管理プラットフォームでも利用できます。
また、ここで学ぶGithubの基本操作や考え方、用語は、GitlabやBitbucket Server、Giteaなどのソースコード管理プラットフォームに応用できます。
Gitlab : https://about.gitlab.com/ja-jp/
Bitbucket Server : https://www.atlassian.com/ja/software/bitbucket/enterprise
Gitea : https://gitea.io/ja-jp/ << オンプレミス環境やプライベートクラウド環境向けでは、このなかで一番軽く、低スペックサーバーで使える。
Backlog : https://backlog.com/ja/
また、GithubやGitlab等に備わっているプロジェクト管理機能、あるいはTrelloやRedmine、Jiraなどのプロジェクト管理ツールを使っても良いでしょう。カンバンボードで、さまざな作業や営業活動を共有するようにしましょう。開発系の作業と、営業活動やカスタマーサポートなどの各種作業を一覧で共有できることが、非常に重要です。
補足資料
コマンドを使った操作については、Paizaラーニングの「Git入門編1」をご覧ください。>> https://paiza.jp/works/git/primer/beginner-git1
Git関係の用語は、ここみておきましょう! 【イラストで覚える】初心者のためのGitとGitHub用語集。>> https://zukulog098r.com/git/
リポジトリ (レポジトリ) 作成
ログイン
Githubアカウントを持っている場合は、https://github.com/ にアクセスし、画面上の「Sign in」をクリックしてログインします。 Github アカウントを持っていない場合は、画面右上の「Sign up」から利用登録を行います。
リポジトリの作成
ログイン後、画面左上の「New」をクリックします。
「Create a New Repository」の画面で、最低限、次の項目を入力します。その後、「Create repository」をクリックします。
Repository name
Description
今回は「Public」を選択
オープンソースソフトウェア開発であれば、原則 Publicを選ぶこと。企業であれば、Github Enterprise ( https://github.co.jp/pricing ) を使うことがある。
「Add a README file」にチェックを入れる。
リポジトリを作成することができました。
リポジトリの共有
作成済みのリポジトリで、画面右上の「Settings」タブをクリックします。
リポジトリの設定画面が表示されます。画面左側の「Collaborators」をクリックします。
「Manage access」で、「Add people」をクリックします。
Githubの既存ユーザーを招待することができます。collaboratorとして招待することで、リポジトリ上で一緒に作業できる人を増やすことができます。
一緒に作業する人のGithubユーザー名やGithubに登録されているメールアドレスを入力します。例えば、次のようになります。
「Add Githubユーザー名 to this repository」をクリックすることで、7日間有効な招待メールが相手に届きます。相手が同意すれば、リポジトリを共有できるようになり、一緒に作業ができます。
Gitのインストール
https://gitforwindows.org/ にアクセスし、WindowsもしくはMac向けのGitをインストールします。
Githubで、パーソナルアクセストークンを登録 ( 少なくともMacを使う人は必須 )
WebブラウザでGIthubにログインします。
Githubの画面右上の自分のアバターをクリックし、「Settings」>>「Developer Settings」>>「Personal access tokens」の順にクリックします。
< 自分のアバターがあるところ >
「Generate token」をクリックします。
Githubのパスワード入力を求められます。パスワードを入力し、「Confirm password」をクリックします。
「Note」にトークン名を入力します。わかりやすいものが良いので、ここではSourceTreeとしています。「Expiration」で有効期限を決めます。ここでは、90日を選びました。また「repo」にチェックを入れて、一番下にある「Generate token」をクリックします。
パーソナルアクセストークンが生成されました。どこかにメモしておきます。パーソナルアクセストークンには有効期限がありますので、期限をきちんと把握しておきましょう。更新日が近くなると、メールで連絡があります。ただし英語メールなので見落とさないように注意しましょう。
SourceTree
インストーラーのダウンロード
https://www.sourcetreeapp.com/ にアクセスし、Windows版とMac版、どちらかをダウンロードします。
「Download for Windows」もしくは「Download for Mac OS X」の表示されている方をクリックします。
利用規約に同意にチェックを入れ、「Download」をクリックします。
ダウンロード後、インストールします。Windows版の場合は「SourceTreeSetup-3.4.9.exe」です。Ma版の場合は「Sourcetree_4.1.8_244.zip」になります。ダウンロードしたファイルをダブルクリックして開きます。
SourceTreeのインストール
Macの場合
Ma版の場合は「Sourcetree_4.1.8_244.zip」を開くと、SourceTreeのアプリケーション本体が表示されます。アプリケーションフォルダに移動します。移動後、SourceTreeをダブルクリックして起動します。
Windowsの場合
最初は、Githubと同じGitリポジトリサービスの「Bitbucket Server」とクラウド版「Bitbucket」を選ぶよう求められますが、今回はGithubとの連携が目的なので、「スキップ」をクリックします。
既にGitがインストール済みの場合は、次のように表示されます。もし、Gitがインストールされていない場合は、「Git」にチェックを入れます。また、「Mercurial」のチェックをはずしましょう。「次へ」をクリックします。
Githubで使っているユーザー名とメールアドレスを入力し、「次へ」をクリックします。
「SSHキーを読み込みますか?」の表示には、「いいえ」をクリックします。
これで、SourceTreeのインストールは完了です。
SourceTreeからGithubに接続
Macの場合
パソコンの左上で、「SourceTree」>>「環境設定」の順にクリックします。
一般」タブの「デフォルトのユーザー情報」には、今回はGithubで使っているユーザー名とメールアドレスを入力します。Backlogも使っている場合は、メインで使っているGitリポジトリのユーザー名とメールアドレスとしましょう。
「アカウント」タブをクリックし、「追加」をクリックします。
「ホスト」に「Github」を選びました、「アカウント接続」をクリックします。
Webブラウが開き、Githubにログインを求められます。ログイン後、「Authorize Atlassian」をクリックします。
下図のようにチェックを入れ、「開く」をクリックします。
SourceTreeに、お使いのGithubアカウントが紐付けできました。「キーを生成」をクリックします。
パスフレーズを入力します。例 zxcvfr45
同じものを2回入力し、「作成」をクリックします。
SSHキーが登録されました。「クリップボードにコピー」をクリックします。公開鍵のコピーになります。メモアプリなどに貼り付けておきます。その後、「保存」をクリックします。
SourceTreeの環境設定に、紐付けたGithubアカウントが表示されます。
画面右上の赤いボタンを押して、環境設定を閉じます。
Githubに公開鍵を登録
WebブラウザでGithubにアクセスし、ログインします。画面右上の自分のアバターをクリックし、「Settings」にアクセスします。左側のメニューに「SSH and GPG keys」がありますので、「SSH and GPG keys」をクリックします。「New SSH key」をクリックします。
「Title」には自分が管理しやすい名前をつけます。「Key」にはメモアプリ等にコピーしておいた公開鍵の値を貼り付けます。「Add SSH key」をクリックします。
公開鍵が登録されました。
Windowsの場合
雲のアイコンの「Remote」をクリックします。「アカウントを追加」をクリックします。
「ホスティングアカウントを設定」が表示されます。ホスティングサービスに「Github」を選び、優先するプロトコルは「HTTPS」、認証は「OAuth」を選びます。
「OAuthトークンを再読み込み」をクリックします。Webブラウザが開き、SourceTreeからGithubへの接続についての認証を求められます。「Authorize atlassian」をクリックします。
Githubのパスワード入力を求められます。パスワードを入力し、「Confirm password」をクリックします。
「ホスティングアカウントを設定」が表示されます。「認証に成功」と表示されます。「OK」をクリックします。
「リモートリポジトリ」の画面に、あなたのGithubアカウント名が表示されていることが確認できます。
Githubのリポジトリを複製(クローン)
Githubで作成済みのリポジトリのURLを確認します。作成済みのGithub上のリポジトリで、「Code」をクリックし表示されるURLをコピーします。下図は例です。各自でURLは異なりますので、自分のURLをコピーします。コピーするURLは、最後が、git で終わります。
Macの場合
キーチェーンアクセスで、Githubの正しいパスワードを登録
Macの「キーチェーンアクセス」を起動します。アプリケーションフォルダで、「キーチェーンアクセス」と検索するのが良いでしょう。
「キーチェーンアクセス」のアプリケーションをダブルクリックします。「キーチェーンアクセス」のアプリケーション上で、「Github」で検索します。
「github.com Access Key for あなたのユーザー名」をダブルクリックします。
「パスワードの表示」にチェックを入れます。
キーチェーンのログインパスワードは、標準ではMacにログインするときのパスワードです。パスワードを入れて「許可」をクリックします。これは2回求められるので、もう1回同じことを行います。繰り返し求めらる場合は、画面指示に従います。
下図のようにパスワードが入力可能になりましたら、Githubのパーソナルアクセストークンを入力します。一文字だけ入っていますので、それを削除して、入力します。
「変更を保存」をクリックします。これで、Macのキーチェーンアクセスに、Githubの正しいパスワードが登録されます。
「パスワードを表示」のチェックを外します。
SourceTreeを使ってGithubからリポジトリのクローンを実施
SourceTreeの画面で、「新規」>>「URLからクローン」の順にクリックします。
「リポジトリをクローン」の画面で、「ソースURL」に、Githubで確認した作成済みのリポジトリのURL(最後が、.gitで終わるURL)を入力します。コピーして貼り付けるのが良いでしょう。
te
Windowsの場合
SourceTreeの画面で、「Clone」をクリックします。
「Clone」画面が表示されます。下図のように4つある項目のうち、一番上にGithubのリポジトリからコピーしたURLを貼り付けます。残りの項目は自動入力されます。
2つ目の項目に表示された場所が、作業用のフォルダ(ディレクトリ)です。
「クローン」をクリックします。
クローンが終わると、次のように表示されます。これで作業ができるようになりました。
ブランチを切る
「ブランチ」をクリックします。
ブランチ名を入力します。例として、dev001 とします。ブランチ名は英語のみです。「ブランチを作成」をクリックします。
「ブランチ」が、「main」の上に「dev001」が作成されました。作業のために選択しているブランチには、◎がつきます。
「dev001」というブランチを切る(作る)ことで、そこにアップロードしたソースコードに、もし間違いや致命的なバグが含まれていたとしても、最も重要な本体「main」ブランチと分かれていますので、本体となる「main」ブランチに影響は与えません。なお、「mian」ブランチに、別のブランチのソースコードを加えることを「マージ」と言います。
コミット
Windowsの場合は、SourceTreeの画面が「エクスプローラで開く」をクリックすることで、作業用フォルダ(ディレクトリ)に移動することができます。ブランチは、先ほど作成したブランチが選ばれた状態にします。選択しているブランチ名の左隣に◎がつきます。
好きなエディタで、作業用フォルダ(ディレクトリ)にアクセスします。たとえば、Visual Studio Code は、フォルダごと開けるので便利です。ここでは、Dockerfile というファイルを作成します。
Dockerfile を作成しました。
SourceTreeの画面に戻ります。「作業ツリーのファイル」という場所に、「Dockerfile」というファイルが表示されています。ファイルの右端の「+」をクリックします。
「Indexにステージしたファイル」の欄に移動します。画面下部の欄にコメントを入力します。後で見返すために、コメントはなるべく入れるようにします。入力後、「コミット」をクリックします。
コミットしたを選び、画面上部の「プッシュ」をクリックします。
プッシュ先として、ブランチを選びます。「main」ブランチ以外にチェックを入れます。「プッシュ」をクリックします。
Githubのリポジトリにアクセスします。ブランチを切り替えます。例として「dev001」をクリックします。main以外のブランチで名称が異なる場合は、各自で作成したブランチを選んでください。
「main」ブランチでは、「README.md」だけですが、
「dev001」ブランチでは、「Dockerfile」が加わっています。
Dockerfile をクリックすると、ファイルの中身が表示されます。
プルリクエスト(Github)
Githubに表示されている「Compare & pull request」をクリックすることでプルリクエストを作成することができます。しかし時間が経つと消えてしまいます。
この場合、「Pull requests」タブをクリックします。
「New pull request」をクリックします。
プルリクエストを行い、ブランチ「dev001」の「Dockerfile」を、ブランチ「main」に加えたいので、「base」に「main」ブランチ、「compare」に「dev001」ブランチとします。dev001と名称が異なる場合は、読みかえてください。
画面下には、対象のコミット内容が表示されます。「Create pull request」をクリックします。
プルリクエストの件名と、プルリクエストに至った理由を下図のように入力します。また、1人でGithubを使っている場合は不要ですが、2人以上の場合は「Reviewers」の歯車のアイコンをクリックし、レビュー(内容確認)してくれる人を指定しましょう。
またプルリクエストを承認し、マージを行う人を「Assingnees」として指定する必要があります。1人でGithubを使っている場合は、「Assingnees」の歯車のアイコンをクリックし、自分自身を指定します。
「Create pull request」をクリックします。
プルリクエストを作成することで、プルリクエストの一覧に表示されます。「Open」となっているものが、マージの対象となるプルリクエストです。
マージ(Github)
プルリクエストの一覧から、「Open」となっているプルリクエストのなかから、マージの対象となるプルリクエストを選びます。プルリクエストした時に、「Assingnees」の対象が自分自身(1人でGithubを使っている状態)であれば、既にマージのための画面が表示されているはずです。
画面下のコメント欄にコメントを入力し、「Comment」をクリックします。
マージを行うプルリクエストの画面に、コメントを追加することができました。「Merge pull request」をクリックします。
「Confirm merge」をクリックします。
この表示がでれば、マージは完了です。
プルリクエストの一覧で、「closed」をクリックします。マージが行われたプルリクエストの一覧が表示されます。
main ブランチの確認(Github)
Github内の「main」ブランチを表示してみましょう。
マージ前は、README.md のみでした。
マージ後は、Dockerfile が「dev001」ブランチからマージされ、加わりました。
「main」ブランチ以外に、複数の作業用のブランチを切る(作る)ことで、問題のない、エラーのないもののみを「main」ブランチに反映させることができます。
SourceTreeに反映
Github側でマージを行いましたので、SourceTree側も更新しましょう。ブランチは「main」をダブルクリックして切り替えます。SourceTree側で、「プル」に数字が表示されている必要があります。表示されていない場合は、SourceTreeの「リポジトリ」>>「リモートのステータスを更新」をクリックします。
もし、複数人で開発を行っているのであれば、先に「フェッチ」を使ってください。
「プル」をクリックします。「プル」画面が表示されます。「キャンセル」の左隣の「プル」をクリックします。
SourceTree側にも反映されました。常に、SourceTreeは、SourceTreeと連携しているGitリポジトリと同じ状態にしておく必要があります。プルに数字が表示されている場合は、忘れずにプルの操作を行いましょう。
issue を登録 (Github)
issue は、課題と言うことが多いですが、開発の場合は「作業」と言う方が正しいです。動詞としてのissueは、発するという意味ですので、課題も作業も、発行されたものとしては由来は同じです。
オープンソースソフトウェアの多くは、なにかしら障害が起きたり、バグが見つかったり、作って欲しい機能がある場合は、Githubなど公開されているGitリポジトリで、「issue」を登録することが一般的です。メールや電話しても、英語で「issueに登録しておいてください。」と言われるだけなので、技術者以外に、営業やカスタマーサポート、クレーム担当のような業務を行う場合であっても、「issue」に登録することを身に着けておくことがとても重要です。
たまに、日本語の問い合わせを英語などに翻訳してサポートする「ブリッジSE」がいることがあるので、その場合は「ブリッジSE」に依頼することが可能です。( ブリッジSEは、なれれば面白い仕事ですよ。)
Githubでは、「Issues」タブをクリックし、「New issue」をクリックすることで、登録することができます。
件名とコメントを入力するとともに、「Assingnees」に作業担当者を割り当てます。1人でGithubを使っている場合や、複数人が使っているが、作業担当者が自分の場合は、自分自身を割り当てます。
コメント欄には、#1 のようにプルリクエストや他のissue を紐づけることができます。ここでは、プルリクエストの番号が、1 番のため、#1 とすることで、前述のプルリクエストと紐づけることができます。
「Submit new issue」をクリックします。「issue」に作業内容が登録されました。画面右側の「Labels」の歯車のアイコンをクリックすると、bug などのラベルを付与することができますので、なるべく付与しておきます。
<< ラベルを付与した例 >>
ラベルがあると、Issues のタブをクリックして表示される、issue の一覧でも目立って良いですね。
プロジェクト (Github)
プロジェクトとカンバンボードの作成
Githubの画面で、「Projects」タブをクリックします。次に画面左側の「Projects(classic)」をクリックします。様々な issue を管理するわけですが、Github以外であれば、Trello( https://trello.com/ja )は使い易くお勧めです。Trello は、パブリック型のSaaSですので、パブリック型がダメな場合は、オンプレミス環境やプライベートクラウド環境で使える「Gitlab」が選択肢になります。
「New classic project」をクリックします。
「Create a new classic project」が画面が表示されます。「Project board name」に、プロジェクト名を入力し、「Description」にはプロジェクトを簡潔に説明したものを入力します。プロジェクトというのは、開発するソフトウェアの名称であったり、一定期間実施する一連の作業の総称となります。なにかしらの本やオンラインドキュメントの原稿管理をGithubで実施する例もあります。
「Project template」は、クリックして「Automated kanban」を指定します。「Create project」をクリックします。
カンバンボードができあがります。「To Do」はやるべきこと、「In progress」は作業中、「Done」は作業完了を意味します。
issue の紐づけ
プロジェクトの作成直後や「Add cards」をクリックすると、作成済みのissue が表示されます。
作成済みの issue 、カードと言います。カードを「In progress」にドラッグ&ドロップしてみます。
これで、先程作成した issue が、プロジェクトに紐づけられました。画面右側の「Add cards」の表示は、右端の「X」をクリックすることで非表示となります。「Add cards」をクリックするともとに戻ります。
カンバンボードでissueの確認
カンバンボード内のカード ( issueやプルリクエスト )をクリックすると、画面右側に表示されます。プロジェクトに紐づいていることがわかります。
「Go to issue for full details」をクリックすると、issue 画面に切り替わります。こちらでも、プロジェクトに紐づいていることがわかります。「Projects」の歯車のアイコンをクリックすることで、プロジェクトを変更することができます。
作業管理にTrelloを使う場合のGithub連携
Trelloにログインとボード作成
https://trello.com/ja にログインし、ボードを作成します。
基本のボードが作成します。「リストのタイトルを入力」に、それぞれ、To Do / In Progress / Done を入れていきます。
アドオン機能「Power-Up」によるGithub連携の有効化
「Power-Up」>>「Power-Upの追加」の順にクリックします
「Github」で検索します。一番最初に出てくる「Github」について、「追加」をクリックします。
「設定」をクリックします。
「アカウントを認証」をクリックします。
「お持ちのGithubアカウントをリンクする」をクリックします。
「Authorize Trello」をクリックします。
Githubのパスワード入力を求められます。パスワードを入力し、「Confirm password」をクリックします。
「Power-Up」の表示で、「X」を押して閉じます。
ボードに戻ります。ボード内の「Power-Up」をクリックし、次にGithubについて「Settings」をクリックします。
「Power-Upの設定を編集」をクリックします。
「リポジトリの作成」をクリックします。
Github内の自分が管理しているリポジトリから1つ選びます。図はあくまで例であり、実際のリポジトリ名は各自で異なります。
ボード内の「Power-Up」の「Githubの設定」で「X」をクリックします。
TrelloとGithub連携の動作確認
ボード内に、Githubリポジトリへのリンクが追加されました。図では、containertrain と表示されている部分です。
ボード内で、「+カードを追加」をクリックして、作業の件名を入力し、Enterキー押します。
追加されたカードの件名をクリックします。詳細画面が表示されます。画面右下の「Github」をクリックすると、ブランチ / コミット / issue / プルリクエストを作成することができます。作成することで、Trelloで管理するカード( 作業 )と紐づけて管理することができます。
Github内の既存のissueから、紐づけるものを探します。該当するものをクリックします。
Trello側のボード内のカード( 作業を記したもの ) に、Githubの issue を紐づけることができました。
カード内の、Githubのissueの件名をクリックすると、Github側の画面に移動することが確認できます。また、Github側で、Trelloのカード名をクリックすると、Trelloの画面に移動します。
Trelloは、開発系以外の各種作業の管理につかうことが多く、Githubなどと連携することで、開発系以外の業務や日報等ともまとめて管理することが可能です。
参考資料 : https://www.ricksoft.jp/blog/archives/category/trello/