私はgit pull
を使ってローカルリポジトリが最新であることを確認しています。ただし、git pull
が失敗することがあります。コミットされていない変更がある場合はgit pull
が失敗します。コマンドが失敗してもスクリプトの残りの部分が確実に続行されるようにするには、gitまたはshellオプションがありますか?Rescue git pull
スクリプトは現在、次のとおりです。
if [ -d "some-repo" ]; then
cd "some-repo"
git pull
#RESCUE????
else
git clone [email protected]:USERNAME/some-repo.git
cd "some-repo"
fi
私はブランチをチェックアウトしたくない、と私は本当に仕事が別の支店で起こっている気にしないでください。 git reset --hard
を実行するか、--force
コマンドを使用することは可能ですが、安全であることを確認して、そのコードが失われないようにしたいと思います。
あなたのスクリプトには難しいことがあります: 'git pull'は実際には' git fetch'の後に新しく更新されたローカルブランチの追跡ブランチの 'git merge'です。フェッチが失敗する可能性はありますが、マージが失敗する可能性もあります。だから私はあなたが失敗のタイプを説明する必要があると思います。 –
'git pull'の前に予防的な 'git stash'を実行し、' git stash pop'を実行することができます。しかし、あなたは 'git stash pop 'でも矛盾が現れるかもしれないことを覚えておいてください。 – cfz42
@ cfz42私はこの考えが好きです。競合がある場合、ポップは実際に隠しをポップしないので、変更は安全です。 – Ian2thedv