Вы можете попробовать следующее:
#!/bin/bash
git checkout $1
nosetests || exit 1
git checkout master
git merge $1
git push
git checkout $1
|| проверит код возврата nosetests и выполнит команду exit 1, если она отлична от нуля. [!d1 ]
Другой вариант может быть.
#!/bin/bash
git checkout $1
if ! nosetests
then
exit 1
fi
git checkout master
git merge $1
git push
git checkout $1