間違っているところもあると思いますが、現時点での理解。
そもそも
クローンとフォークの違い
フォーク:Github上でチームのリモートリポジトリを自分のリモートリポジトリにコピーすること
クローン:フォーク後にネット上のリモートから手元PCのローカルに持ってくる
フォークの後にクローン
ミス
リモート:間違えても影響なし
ローカル:自分が困る
クローンできない
行ったこと
(正しい順序という訳ではなくGit大初心者の私が試したことです)
1.sourcetreeでGutに紐付けアカウント作成
認証タイプ:OAuth
プロトコル:SSH
2.アカウントのSSHキーからGitでSSHキーを作成
SSHキーが無いと読み取りしかできずプッシュができないらしい
3.Github上でチームのリモートリポジトリを自分のリモートリポジトリにフォーク
4.sourcetreeのブックマーク画面で「リモート」を選択。制作したアカウントはあるが、フォークしたリポジトリが無い
5.ターミナルでデスクトップに移動し、「git clone SSHキー」を実行するも、下記エラー
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
「リポジトリが無い。リモートリポジトリを読み込めない。作ってからクローンして。」
と言ってきた
1.ここで忘れたので、一応sourcetree内に空のリポジトリを置く
6.Gitユーザー名とパスワードを入力して「git clone HTTPSキー」を実行するも、下記エラー
remote: Support for password authentication was removed on August xx, 2021.
remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'HTTPSキー'
「パスワードは消されてる。このリンク見てね。」とのこと
リンク内まとめ
-
開発時のプッシュ対象
リモートリポジトリのHTTPS URLかSSH URLに対してプッシュする
URLは名前(origin等)がつく -
SSH(Secure Shell)とは
ネットワークを介して別端末と通信するためのプロトコル。
Shell(Macではターミナル):コンピューターへの入力を受け付けるもの。カーネルと人間の仲介 -
リモートURLとURLの名前を一致させる
git remote add URL名 <URL>
- リモートURLの変更
git remote set-url URL名 <URL>
- HTTPS URLでのクローン
ファイアウォールまたはプロキシの内側にいる場合でも機能する
Gitコマンド実行時、ユーザーIDとパスワードを入力
ここで気づきました。
パスワードはGitアカウントのパスワードではなく、作成した「personal access token」のこと
Gitでpersonal access tokenを作り、実行。
デスクトップ上にクローンしたリポジトリを確認できました。
-SSH URLでのクローン
安全なプロトコルでクローンする。
sourcetreeにSSHキーペアを生成し、GitHubのアカウントに公開鍵を追加する(これはやった)
Gitコマンド実行時、ユーザーIDとパスワードを入力
ここでのパスワードとは、SSHキーのパスフレーズのこと
最後に
クローンには認証が大事なことが分かった。大事であることがsourcetreeでもGitコマンドでもかなり分かりにくいが。
sourcetreeでクローンできない→Gitコマンドでもエラー
で困っていた訳だが、sourcetreeだとどこでおかしいのか分かりにくいが、コマンドだとエラー文で原因の特定に近づくと思ったので、必ずしも初心者だからといってGitクライアントを使えばよいという訳でもないと思ったりした。
はじめてGitを使うため分からなすぎたが、わからないことを潰していくように調べ続けたら治るし、調べる過程が学習なので逃げずに1つづつ行っていきたい。
Gitの公式ドキュメントには感謝しています。