私はこのような方法を試しました:
$REPO=<repo>
$ORIGIN=<user>/$REPO
$UPSTREAM=<upstream>/$REPO
$ git clone git@github.com:$ORIGIN.git
$ cd $REPO
$ git checkout master
$ git remote add upstream git@github.com:$UPSTREAM.git
$ git reset --hard upstream/master
$ git pull --rebase upstream master
$ git push origin master --force
出力には警告が表示されます。
fatal: ambiguous argument 'upstream/master':
unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
したがって、正しい方法がgit pull
前に置かれますgit reset
:
$ git clone git@github.com:$ORIGIN.git
$ cd $REPO
$ git checkout master
$ git remote add upstream git@github.com:$UPSTREAM.git
$ git pull --rebase upstream master
$ git reset --hard upstream/master
$ git push origin master --force
その後、出力は次のようになります。
From github.com:<upstream>/<repo>
* branch master -> FETCH_HEAD
* [new branch] master -> upstream/master
HEAD is now at 7a94b1790 Merge pull request #4237 from <upstream>/...
Current branch master is up to date.
Everything up-to-date.
git reset --hard upstream/master
、作業ディレクトリもリセットする必要があります。それでもあなたの答えは正しいです。