git push --force-with-lease

http://japan.blogs.atlassian.com/2015/05/force-with-lease/
「--force-with-lease」オプションをつけると、基本的には「--force」オプションをつけたのと同じようにpushする。
ただし「push先のコミットIDが他作業者によって更新されている場合」は失敗する。
具体的には「push先ブランチのコミットIDが、ローカルリモート(remote/originとか)のコミットIDと変わっている場合」はこのコマンドは失敗する。
このオプションを利用することで、他作業者がコミットした内容を消してしまうリスクが軽減できる。
(正確には消してしまうというか参照できないようにしてしまう、が正しい表現だが)



他作業者のコミットを消してしまわないというだけで、他作業者が既に取り込んでいるブランチを--forceしたときに他作業者が再度pullをすると不要なマージが発生してしまうという問題は相変わらず発生する。