1. ホーム
  2. git

[解決済み】Gitマージで「すでに最新」と報告されるが、違いはある

2022-02-01 04:55:32

質問

gitリポジトリにmasterとtestの2つのブランチがあります。

masterブランチとtestブランチの間に違いがあります。

どちらのブランチもすべての変更がコミットされています。

そうすると

git checkout master

git diff test

差分を示す変更点の画面が表示されます。テストブランチの変更をマージしたいので、そうします。

git merge test

しかし、"Already up-to-date" というメッセージが表示されます。

しかし、異なるブランチ下のファイルを調べると、明らかに違いがあることがわかります。

何が問題で、どう解決すればいいのか?

どのように解決するのですか?

Already up-to-date" というメッセージは、マージしようとしているブランチのすべての変更が、現在いるブランチにすでにマージされていることを意味します。具体的には、あなたがマージしようとしているブランチが は、現在のブランチの親である . おめでとうございます!今までで一番簡単なマージですね :)

使用方法 gitk をクリックして、リポジトリを見てみましょう。test" ブランチのラベルは、"master" ブランチのラベルの下の方にあるはずです。

あなたのブランチは、その親に対して最新である。マージによると、前回のマージ以降に親に新しい変更が加えられていません。 というのも、作業用ブランチには多くの変更があり得るからです。

2019/12/10編集

この回答へのコメントでCharles Drakeによると、問題を改善するための1つの解決策です。

git checkout master
git reset --hard test

これで「テスト」レベルに戻りました。

では、そうしてください。

git push --force origin master

を使用すると、変更を強制的にセントラルリポに戻すことができます。