私は、master と test という 2 つのブランチを持つ Git リポジトリを持っています。
マスターブランチとテストブランチには違いがあります。
両方のブランチにすべての変更がコミットされています。
私が行った場合:
git チェックアウト マスター
git diff テスト
変更内容が画面に表示され、相違点が表示されます。テスト ブランチの変更をマージしたいので、次のようにします。
git マージテスト
しかし、「すでに最新です」というメッセージが表示される
ただし、それぞれの異なるブランチの下にあるファイルを調べると、違いがはっきりとわかります。
ここで何が問題なのでしょうか、またどうすれば解決できるのでしょうか?
ベストアンサー1
「すでに最新です」というメッセージは、マージしようとしているブランチのすべての変更が、現在作業中のブランチにすでにマージされていることを意味します。より具体的には、マージしようとしているブランチが現在のブランチの親であることを意味します。おめでとうございます。これまでで最も簡単なマージです。:)
gitk
リポジトリを確認するために使用します。「test」ブランチのラベルは、「master」ブランチのラベルの下のどこかにあるはずです。
あなたのブランチは、その親に対して最新です。マージによると、最後のマージ以降、親に新しい変更はありません。これは、ブランチが同じであることを意味するわけではありません。作業ブランチには多くの変更がある可能性があり、実際にそうであるように思われるからです。
2019年10月12日編集:
この回答に対するコメントの Charles Drake によると、この問題を解決する 1 つの解決策は次のとおりです。
git checkout master
git reset --hard test
これにより、「テスト」レベルに戻ります。
次に、次の操作を実行します。
git push --force origin master
変更を中央リポジトリに強制的に戻すためです。