シナリオ:
- 新しいブランチを作ります
- それをハックする
- コミットする
- 押して
- もう少しハックする
- もう一度コミットする
- もう一度押してみてください
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 -v
andgit show remote origin
(オリジンが問題のあるリモートであると仮定)の出力が役立つ場合があります