1000 以上のコミットと 20 のブランチを持つ Github アカウントのリポジトリをフォークしました。
次に、ローカル マシンでクローンを作成しました。
ローカル マシンのリポジトリと Github のリポジトリの両方を、すべてのブランチとコミットを含む元のリポジトリで更新する方法はありますか?
たぶん手遅れかもしれませんが、遅い答えは何もないよりはましです:
# add the upstream:
git remote add upstream https://github.com/whoever/whatever.git
#create a script to loop through the whole branches and merge changes or create them if not found
sync_all_branch () {
git fetch upstream
for upstream_branch in $( git branch -a |awk 'BEGIN {FS="/"} $2=="upstream" {print $3}' ) ;
do
if git checkout $upstream_branch
then
echo merge $upstream_branch
git merge -s recursive -Xours upstream/$upstream_branch
else
echo create $upstream_branch
git checkout -b $upstream_branch upstream/$upstream_branch
fi
done
git checkout master
}
# then call the script
sync_all_branch
#push changes to your remote repository
git push --all
上流のブランチの上にブランチをリベースする場合 (加えた変更を削除し、上流にマージしない場合)、次のように変更する必要があります。
git merge -s recursive -Xours upstream/$upstream_branch
と
git rebase -s recursive -Xours upstream/$upstream_branch
最後のコマンドに「-f」を追加します
*sync_all_branch スクリプトはhttps://stackoverflow.com/a/7766487/2481592からのものです