スキップしてメイン コンテンツに移動

SourcetreeでGitHubのプライベートリポジトリをクローンする

Sourcetreeは、初心者でも操作しやすいgitのGUIツールです。基本無料のソフトなので、あらゆる人が導入・利用しやすいという利点を持ちます。ですが、GitHubで非公開、つまりプライベートのリポジトリを取り扱う場合には、初期設定に一工夫が必要です。

本記事で紹介する設定の流れは以下の通りです。前提として、1)GitHubのアカウントとプライベートリポジトリを既に所有しているが、2)Sourcetreeを自身のPCにまだインストールしていない状態を想定しています。

  1. GitHubのPersonal access tokenを作成する
  2. Sourcetreeを自身のPCにインストールする
  3. SourcetreeにGitHubのアカウントを登録する
  4. プライベートリポジトリをクローンする
今回はPersonal access tokenという手法を用います。秘密鍵や公開鍵が必要なSSH接続とは異なり、アカウント名とパスワードのみで認証できます。そのため、アカウント管理がより重要となりますので、2段階認証でより強力なアカウント保護をおこなうことをお勧めします。また、本記事で紹介するのはWindowsでの利用です。Macでもほぼ同じ流れになるかと思いますが、試してはいませんのでご了承ください。

1. GitHubのPersonal access tokenを作成する

GitHubのPersonal access tokenとは、GitHub API またはコマンドラインを使用するときに GitHub への認証でパスワードの代わりに使用できる機能です。このトークンを自身のGitHubアカウントで作成することで、Sourcetreeからプライベートリポジトリにアクセスすることができるようになります。具体的な作り方は下記のGitHub公式ページををご参考ください。

Personal access tokenの作成方法:
https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token

ポイントは手順8に書かれているScopes、つまり権限の選択です。作成したトークンで何をすることができるかを選択することができるのですが、その中から「repo: Full control of private repositories」にチェックを入れることで、プライベートリポジトリを操作することができるようになります(下図赤線参照)。



2. Sourcetreeをインストールする

次に、自身のPCにSourcetreeをインストールします。すでにインストールが完了している場合はこの章をスキップし、「3. SourcetreeにGitHubのアカウントを登録する」にすすんでください。Sourcetreeのセットアップexeファイルは以下の公式ページからダウンロードすることができます。

https://www.sourcetreeapp.com/

ダウンロードしたセットアップexeファイルを実行すると、Sourcetreeのセットアップが始まります。最初の画面では、Bitbucketのアカウントに紐づけるか否かを尋ねられます。BitbucketはGit管理ウェブサービスの一種で、GitHubと同種のサービスです。BitbucketとSourcetreeはどちらも、オーストラリアのソフトウェア企業Atlassianが運用しているので、最初に紐づけるかどうか尋ねられます。Bitbucketのアカウントを持っていない場合は、「スキップ」を押してください(下図赤枠参照)。


次に、Gitを自身のPCにインストールするか否かを尋ねられます。すでに入っている場合には、Gitの記述の左横にチェック欄がないですが、まだはいっていない場合にはチェック欄がありますので、チェックをいれて「次へ」ボタンを押してください(下図赤枠参照)。Gitの記述の下にある「Mercurial」はGitとは異なる分散型バージョン管理システムソフトウェアです。得に不要の場合はチェックをいれないでください。


次に、名前とメールアドレスを入力する画面になります。この情報はこのPCのSourcetreeからGitHubにコミットしたときに表記されます。ですので、誰が作業したのかわかるような名前と連絡先として有効なメールアドレスを入力して、「次へ」を押してください(下図赤枠参照)。


最後にSSHキーの読み込みに関して尋ねられます。windowsでSSH接続をする場合にはSourcetreeとは別に、SSHエージェントソフトウェアを起動して紐づける必要があります。今記事で紹介する手法では、SSH接続を実施する事はありませんので、「いいえ」を選択してください(下図赤枠参照)。



3. SourcetreeにGitHubのアカウントを登録する

それでは、SourcetreeにGitHubのアカウントを登録しましょう。「New tab」の表示の中に「Remote」のボタンがあります。ボタンをクリックしますと、下図のような画面になります。その中にある「アカウントを追加」をクリックしてください(下図赤下線参照)。


次に「ホスティングアカウントを設定」という画面が表示されます。そこで下記の通り設定を選択してください。(下図赤下線参照)。この設定が終わりましたら、「OAuthトークンを再読み込み」をクリックしてください(下図赤枠参照)。
  • ホスティングサービス: GitHub
  • 優先するプロトコル: HTTPS
  • 認証:OAuth

次に、別ウインドウのウェブブラウザで、GitHubとの連携認証画面が表示されます。そこにユーザー名またはメールアドレスとパスワードを入力してください。なお、すでに立ち上がっているブラウザでGitHubにサインインしていた場合、この画面は表示されません。

そうしますと、「ホスティングアカウントを設定」画面の左下に「認証に成功」という文字とチェックマークが現れます(下図赤下線参照)。その状態で「次へ」をクリックしてください(下図赤枠参照)。


こうしますと、GitHubのアカウントが画面上に追加されます(下図赤枠参照)。この状態で、ちゃんとPersonal access tokenが認識されているか確認してみましょう。左下の「アカウントを編集」をクリックしてください(下図赤下線参照)。


そうすると、オプションの認証画面が表示されます。そこの「Git 保存されたパスワード」に「github.com」が表示され、ユーザー名が「Personal Access Token」となっていたら、成功です(下図赤枠参照)。


4. プライベートリポジトリをクローンする

早速、プライベートリポジトリをクローンしてみましょう。クローンしたいリポジトリの右に表示されている「Clone」をクリックしてください(下図赤枠参照)。もし、クローンしたいリポジトリが表示されない場合は、下図赤下線を選択し、リポジトリがあるアカウントまたはオーガナイゼーションを選択してください。


次にクローンの画面に映ります。いろいろと設定がありますが、基本的には下図に振られた各番号の箇所を確認しましょう。

  • ①リポジトリURL: 意図したリポジトリURLと合致しているか確認しましょう。
  • ②クローンするフォルダパス: 「自身のgitをまとめたフォルダ/リポジトリ名」とするのがおすすめです。その際、パスに日本語が混ざらないようにしましょう。ソフトウェアによっては(Pythonの統合開発環境Spyderなど)、パスに日本語が混ざってしまうとフォルダを正しく認識することができず、ソフトウェアが起動しない等のバグを引き起こすことがあります。
  • ③ローカルレジストリ名: 特別な理由がない限りは、リモートリポジトリ名と同一にしましょう。
これで「クローン」を押せば、プライベートリポジトリからクローンをすることができます(下図赤枠参照)。


ですが、下記のようなポップアップが現れて、何度もアカウントとパスワードを入力してもクローンできない場合があります。

WindowsにインストールされているGitのバージョンが古い可能性があります。SorcetreeからインストールされているGitのバージョンを確認するには、左上の「ツール」をクリックした後、「オプション」、「Git」と選択して、表示されているポップアップを下にスクロールすると現れる「Gitバージョン」を確認してください(下図赤枠、赤下線参照)。


次に、下記のURLから最新のGit for windowsのバージョンを確認してください(記載時点では2.33.0が最新)。アップデートしたい場合は「Download for windoows」をクリックして、最新のインストールexeファイルをダウンロードして、実行してください。

http://git-scm.com/downloads

 

コメント

このブログの人気の投稿

Sourcetreeを使って、特定のブランチやタグをローカルに再現する方法 - フェッチ(fetch)を使おう -

今や、プログラミング開発に欠かせない存在となったGit。上司や同僚から「修正版をブランチ"devlop"にプッシュしたから、それを反映させてね」「安定版はタグ”v1.2”だから、よろしくね」と言われることもあるでしょう。その時に「どうやってブランチやタグって変えたらいいかわからない」「そもそも言われたブランチやタグが見当たらないんだけど…」となったら、とても困ってしまいます。そんなときにどうしたらいいか、本記事では Sourcetree を使用している環境を想定して、おすすめの手順を紹介します。環境によって具体的な操作は異なるものの、手順自体は一緒です。基本的には、 フェッチ(fetch)をしてリモートリポジトリをちゃんと確認 すればよいのです。 1. コミットしていないファイルをなくそう まず、Sourcetreeのコミット一覧に「コミットされていない変更があります」とあるかどうか確認します(下記図赤下線参照)。「コミット」の箇所に青マークでコミットされてないファイル数も表示されます(下記図赤枠参照)。その変更をコミットするか、破棄するかを行い、コミットされていない変更がない、きれいな状態にしましょう。そうしないと、後の作業中にエラー等が発生して進まなくなってしまいます。 2. フェッチしよう フェッチとは、 リモートリポジトリの最新の履歴の取得だけを行う 操作です。これによって、自分から見えていなかったブランチ・タグが見えるようになります。ブランチへのマージが伴うプッシュやプルと異なり、単に履歴を取得するだけなので、意図しないコミットが発生しません。安心して実施しましょう。Sourcetreeでは下記図赤枠部分をクリックすれば、フェッチを行うことができます。 その際出てくるポップアップで「すべてのリモートからフェッチ」「全てのタグを取得」をチェックしてください(下図赤下線参照)。 3. 目的のブランチ・タグを見つけよう 目的のブランチ・タグを見つけるのに便利なのが、Sourcetreeの左側領域にある「ブランチ」「タグ」「リモート」「スタッシュ」です。目的のブランチを探したい場合は「リモート」をクリックして現れる「origin」をさらにクリックしましょう。これでリモート上にあるブランチの一覧を見ることができます。タグの場合は「タグ」をクリック

GitHubのプライベートリポジトリからクローンできてもプッシュできないときの対処法 - Write権限の有無を確認しよう -

 以前、 SourceTreeを使って、GitHubのプライベートリポジトリにアクセスする方法 を記事にしました。その際、プライベートリポジトリからクローンできても、プッシュできない!という現象に遭遇するときがあります。下記のように、”そんなリポジトリは存在しないよ”というエラーが表示されます。 remote: Repository not found. もし、そのリポジトリがOrganaizationに属するものならば、 あなたのアカウントの権限が”Read”のみで、”Write”になっていない 可能性があります。権限に関してOrganaizationの管理者に確認してもらいましょう。 管理者がどういうルールで権限を決定しているのかによって、対応が変わるかと思います。一番手っ取り早い対応は、全てのメンバーのデフォルト権限を”Write”に変えてしまえばよいでしょう。Organaizationのページの右上にある「Settings」をクリックし、左に表示されるメニューから「Member privileges」を選択します。すると、左下のような画面が表示されますので、赤枠で囲っている「Base permissions」のプルダウン部分を"Write"に変更してください。 その他に、リポジトリ毎にアクセスできるメンバーを管理したい場合もあるかと思います。その際にはリポジトリの「Settings」→「Manage access」を選択し、設定等を変更してください。