6

github の元のレポからフォークを更新する方法を見つけました (「jay」は元のレポの所有者の名前だとしましょう):

git remote add --track master jay git://github.com/jay/repo_name.git
git fetch jay
git merge jay/master

OK、動作しますが、git pushgit が大量のデータを送信した後、github のパブリック アクティビティで約 500 のコミットを行ったことに気付きましたが、実際には両方のマスター ブランチの差は約 8 コミットでした。

では、何が問題なのですか?

更新: うーん、私が嘘をついたようです。違いは数行のコードでしたが、作成者はどういうわけか大量のコミットをプルしました。おそらく、8 つのファイルにしか影響しなかったので、8 つのコミットと考えました。

4

2 に答える 2

3

何も悪いことはありません。すべての変更がローカルマシンを介して行われるのはGitHubによる設計上の選択であるため、アップストリームリモートのコミットをフェッチしてから、同じサーバー上にある独自のオリジンリモート上の独自のリポジトリにプッシュバックします(しかし、異なるリポジトリ)、しかしgitはそれを「知りません」でした。

GitHubが直接転送を行うことは可能ですが(早送りの「マージ」を想定)、セキュリティリスク(誰が制御し、完全に検証されているか)、誤解のリスク(私のリモート参照がリモートサーバーと一致しない場合)があります私は少し前に最新の状態で、コマンドスタイルの副作用を発行しませんでした)、そして間違いなく他の多くの人がいます。

どこかにGitHubブログ/ヘルプページがあり、それがフォークを更新する方法であると述べています。

于 2013-01-01T23:01:41.513 に答える
0

しばらくの間、これを解決しようとしていました...

今日、 https ://forkrefresh.herokuapp.com/ またはセルフホスト ( github )にあるアップストリームの親からすべてのフォークを自動的に更新するサービスをテストしました。

于 2020-03-25T14:24:33.390 に答える