このシナリオの上流はブランチですか? 確かに似てる。支店名は本当に人を混乱させると思います。
しかし、いくつかの質問に答えるには:
master -> origin/master
と があると仮定しますupstream -> origin/upstream
。すでにローカル ブランチがリモート ブランチを追跡しているようです。
ローカル マシンからオリジン/アップストリームにプッシュできるように設定するにはどうすればよいですか?
上流のブランチに切り替える
> git checkout upstream
... awesome changes
> git commit -a -m "Did something awesome."
> git push origin upstream
チェックアウトを使用して、ローカルで追跡されているアップストリーム ブランチに切り替えます。変更を加えます。それらをコミットすると、元に戻されます。
また、オリジン/アップストリームからオリジン/マスターへのプルをどのように設定しますか?
これを直接行うことはありません。ローカルでマージしてからプッシュする必要があります。
> git checkout upstream
> git pull origin upstream
> git checkout master
> git merge --no-ff upstream
> git commit -a -m "Merged upstream into master."
> git push origin master
ローカル ブランチを上流に変更します。リモート ブランチからすべての変更をプルします。マージに問題があった場合は、マスターに戻す前にまず修正とコミットを行う必要があります。master ブランチに切り替えて、アップストリームからの変更を master にマージします。マスターのポインターを移動するだけでなく、新しいマージコミットを作成するように、早送りをオフにします。
マージをコミットしてから、リモート サーバーにプッシュします。
錯乱
アップストリームがオリジンのような別のリモートロケーションであると想定されている場合、アップストリームをオリジン/アップストリームとしてリストしているため、何をしようとしているのか正確にはわかりません。
私が見たところによると、アップストリームという名前は、別のリモート ロケーションに名前を付けるために使用されます。その場合、起点は上流に似ています。アップストリームへのマスターではありません。しかし、マスター (デフォルトで作成) と呼ばれる 1 つとアップストリームと呼ばれる 2 つのブランチを作成し、それらで作業してアップストリームをマスターにマージしたいと仮定しました。