シナリオ:
- 新しいブランチを作ります
 - それをハックする
 - コミットする
 - 押して
 - もう少しハックする
 - もう一度コミットする
 - もう一度押してみてください
 
Gitは応答します:
現在のブランチの先端がリモートのブランチの背後にあるため、更新は拒否されました。等
このブランチをハッキングしているのは私だけです。他の誰もそれに触れていません。リモートブランチは実際にはローカルブランチの背後にあります。引っ張る必要はまったくないはずです。
(そして、プルすると、Gitは2つの間の競合を報告し、ブランチをそれ自体にマージするように強制します)
なぜこれが(起こりそうに)起こっているのですか?そして、どうすればそれを診断/修正できますか?
明確にするために、私はどこにも分岐しておらず、他の誰もそれに取り組んでいません:
Remote: Commit A -------- Commit B  
Local:  Commit A -------- Commit B -------- Commit C  
CはBの単純な続きであり、分岐は含まれません。しかし、gitはCがAのブランチであると考えています:
Remote: Commit A -------- Commit B  
                  ------- Commit C  
                /  
Local:  Commit A -------- Commit B  
そうではありません; それはBのまっすぐな続きです。
git remote -vandgit show remote origin(オリジンが問題のあるリモートであると仮定)の出力が役立つ場合があります