2

1000 以上のコミットと 20 のブランチを持つ Github アカウントのリポジトリをフォークしました。

次に、ローカル マシンでクローンを作成しました。

ローカル マシンのリポジトリと Github のリポジトリの両方を、すべてのブランチとコミットを含む元のリポジトリで更新する方法はありますか?

4

1 に答える 1

4

たぶん手遅れかもしれませんが、遅い答えは何もないよりはましです:

# 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からのものです

于 2014-02-02T09:16:02.083 に答える