git はあなたの期待しているような管理はしていません。gitの設計思想を理解していないと思います。
①pushとはローカルの内容を全てリモー卜に反映させ、リモートをローカルの全てのフォルダとファイルに完全に一致させる行為です。pushが終わるとロ―カルとリモートは同じものになります。
②リモートでの他者の変更の取り込みはローカル側の責任です。リモートで変更がマージされることは決して有りません。マージはローカルの責任で行うものなのです。リモートはマージされたユミットの受け入れ先に過ぎません。
以上から、gitではリモート上の他者のコミットを全て取り込んでローカルでマ一ジしない限り、pushは許されません。
自分の修正とは別の所の修正だからといってpullの省略を許すとpushで他者の変更が上書きされてリモートが古くなってしまうのです。
gitのpushとはリモートを全て口一カルの内容に置き換え、ローカルとリモートを完全に一致させる処理です。他者の変更を取り込まず自分の変更だけをリモートに送ることは不可能なのです。