私があなたに実行を勧めるスクリプトについては、すべての変更を隠しておくかコミットするのが賢明でしょう。
あるリモートから別のリモートにいくつかのブランチをプッシュする必要がありました。これらの回答では、ローカルブランチが以前から存在している必要がありました
SRC_R=origin1
DEST_R=origin2
for cbranch in $(git branch -r | grep $SRC_R | cut -d '/' -f2,3,4,5 | cut -d ' ' -f1)
do
git checkout $cbranch
git push $DEST_R $cbranch
done
origin1をソースリモートに変更し、origin2を宛先リモートに変更するだけです。これを「remoteBranchCloner.sh」にコピーし、「sh callBranchCloner.sh」を使用して呼び出します。
いくつかのプッシュを行わないより良い方法があるかもしれません。
私のコードを使用する場合は、おそらく資格情報のキャッシュを使用する必要があります。それ以外の場合は、資格情報をサーバー時間入力する必要があります。
Windowsの場合:
注:このスクリプトはLinux用です。あなたがいる場合、「gitのはbash」でそれを実行するスクリプトは動作しますが、インストール何か特別なことなく、ネイティブのコンソールから、それを実行することはできません。
git config [--global] credential.helper wincred
Linuxの場合
git config [--global] credential.helper cache
[--global]は、オプションで--globalを追加することを意味します
すべてのブランチのリモートトラッキングを新しいリモートに設定する場合:
DEST_R=remotename
for cbranch in `git branch`
do
git checkout $cbranch
git branch -u guru/$cbranch
done
.shファイルとして保存され、「sh filename.sh」で実行すると、すべてのアップストリームがリモートの「リモート名」を追跡するように設定されます。