実行することをお勧めするスクリプトについては、すべての変更を隠しておくかコミットするのが賢明です。
あるリモートから別のリモートにいくつかのブランチをプッシュする必要がありました。これらの回答には、ローカルブランチが以前に存在していたことが必要でした
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」にコピーし、「shcallBranchCloner.sh」を使用して呼び出します。
いくつかのプッシュを行わない、より良い方法があるかもしれません。
私のコードを使用する場合は、おそらくクレデンシャルキャッシュを使用する必要があります。それ以外の場合は、クレデンシャルをサーバー単位で入力する必要があります。
Windowsの場合:
注:このスクリプトはLinux用です。「gitbash」で実行するとスクリプトは機能しますが、特別なものをインストールせずにネイティブコンソールから実行することはできません。
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」で実行されると、すべてのアップストリームがリモートの「remotename」を追跡するように設定されます。