1. ホーム
  2. git

[解決済み] 元のレポのクローンから自分のフォークにプッシュするにはどうすればいいですか?

2022-04-25 07:55:48

質問

フォークを作りました(仮に myrepo ) の別のリポジトリ (これを orirepo ) を GitHub 上で実行します。その後で orirepo .

git clone https://github.com/original/orirepo.git

20ファイルほど修正し、変更をステージングしてコミットしました。

git add
git commit

しかし

git push

こんなエラーが出ました。

remote: Permission to original/orirepo.git denied to mylogin.
fatal: unable to access 'https://github.com/original/orirepo.git/': The requested URL returned error: 403

私は間違いを犯しました: 私のフォークをクローンするべきだったのです。 orirepo しかし、今さら遅いんだ。 どうすれば私のフォークにプッシュすることができるでしょうか? origin/orirepo への書き込み権限がないのですが?

解決方法は?

デフォルトでは、リポジトリをクローンする際に

  • に存在する https://github.com/original/orirepo.git ,
  • という現在のブランチがあります。 master ,

では

  • というリモートのみがリストアップされます。 origin このリポジトリは、クローンしたリポジトリのURLと関連付けられています。
  • ローカル master ブランチは トラック origin/master .

したがって、クローンの設定を変更しない場合、Git は次のように解釈します。

git push

として

git push origin master:origin/master

言い換えると git push は、ローカルの master ブランチを master ブランチ(リモートリポジトリに存在するクローンでは origin ). しかし、あなたはそのリモートリポジトリへの書き込みアクセス権を持っていないので、それをすることはできません。

が必要です。

  1. を再定義するか origin を実行して、あなたのフォークに関連するリモートを作成します。

    git remote set-url origin https://github.com/RemiB/myrepo.git
    
    
  2. または、元の定義を保持したい場合は origin リモートで、新しいリモート ( myrepo ここでは、あなたのフォークに関連するものです。

    git remote add myrepo https://github.com/RemiB/myrepo.git
    
    

    そして、ローカルの master を実行することで、フォークにブランチを追加することができます。

    git push myrepo master
    
    

    そして、Gitに次のように伝えたい場合 git push にプッシュする必要があります。 myrepo ではなく origin を実行する必要があります。

    git push -u myrepo master
    
    

ではなく