error - Sincronizando GIT: refspec master no coincide con ningún
error src refspec master does not match any (1)
El problema está resuelto, la parte externa no tenía una rama principal. Solo una rama de desarrollo.
external_repos=( "OurName.projectx" "OurName.anotherproject" "OurName.thirdproject" "OurName.stackexchange" )
for i in "${external_repos[@]}"
do
echo "Handling" $i
TEMP=`echo $i | cut -d "." -f 2`
TEMP="${TEMP^}"
REPO="EXTERNAL-REPO-$TEMP"
# printf "Temp : %s/n" $TEMP
# printf "Repo : %s/n" $REPO
if [ -d "$i" ]; then
pushd $i
git pull external_developer develop && git push origin develop
popd
else
git clone https://extern_u:[email protected]/external/$i.git
pushd $i
git remote rename origin external_developer
git remote add origin http://APIUser:P@[email protected]/scm/git/$REPO
git push origin develop
popd
fi
done
Estoy tratando de sincronizar un número de repositorios GIT con los nuestros. A medida que estos proyectos van y vienen, decidí crear un solo guión que llamo con un CronTab para preformar el guión.
Intenté esto a mano y funcionó, sin embargo, con estos otros repositorios no funcionó.
My Bash Script:
external_repos=( "OurName.projectx" "OurName.anotherproject" "OurName.thirdproject" "OurName.stackexchange" )
for i in "${external_repos[@]}"
do
echo "Handling" $i
TEMP=`echo $i | cut -d "." -f 2`
TEMP="${TEMP^}"
REPO="EXTERNAL-REPO-$TEMP"
# printf "Temp : %s/n" $TEMP
# printf "Repo : %s/n" $REPO
if [ -d "$i" ]; then
pushd $i
git pull external_developer develop && git push origin master
popd
else
git clone https://extern_u:[email protected]/external/$i.git
pushd $i
git remote rename origin external_developer
git remote add origin http://APIUser:P@[email protected]/scm/git/$REPO
git push origin master
popd
fi
done
Todo va perfectamente, hasta la parte git ... La clonación funciona. el cambio de nombre remoto funciona de forma remota, pero el comando git push me da un error:
error: src refspec master does not match any.
error: failed to push some refs to ''http:http://APIUser:P@[email protected]/scm/git/EXTERNAL-REPO-Projectx''
Este error significa que el maestro no existe externo ¿no? Pero hasta donde sé, existe. También he leído: ¿ Git envía el repositorio existente a un nuevo y diferente servidor de repo remoto? y Empuje el error maestro de origen en el nuevo repositorio
Después de esto investigué un poco más sobre git y pensé que los externos usan una rama llamada develop y main es solo para la confirmación inicial.
¿Estoy haciendo un gran error de Git? ¿Cómo puedo solucionar este problema o hay una forma mejor de sincronizar dos gits?
Antes de que me olvide: traté de agregar todo e intenté una confirmación antes.
Por lo tanto, he leído: src refspec master no coincide con ninguno al presionar commits en git y git: error: src refspec master no coincide con ninguna