1. ホーム
  2. git

[解決済み] 比較するものがない 比較するものは何もありません ブランチは全く異なるコミット履歴です

2022-11-03 21:12:28

質問

私のマシンには CMS テーマがインストールされています。私は git を介してそれに対する変更を追跡しています。 で変更を追跡しており、その変更を共有できるように GitHub にバックアップすることにしました。

提供されたテーマも GitHub で利用可能です。私のマシンでは、これをリモートアップストリームとして追加しました。 をリモートアップストリームとして追加しました。私のマシンでは、これをリモートアップストリームとして追加しました。 とリモートアップストリームとの間の変更を簡単に見ることができます。

git diff --color master upstream/number

GitHub上でリモートの上流を追加できれば、これらの変更を簡単に共有することができます。 この関係をGitHub上で設定することは可能でしょうか?

以下を試してみました。

git push -u origin upstreambranch

を追加し、さらに upstreambranch を GitHub のマスターに追加します。しかし、両方のブランチを比較しようとすると 両方のブランチを比較しようとしてもうまくいかず、GitHub で表示される結果は次のようになります。 比較するものがありません"

これらを比較する別の方法はありますか?

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

簡単な答え

GitHub がブランチを比較できないのは、次のような理由があるようです。 ブランチを比較することができないようです。 実際には同じ履歴をまったく共有していないからです。 たとえ 同じファイルやコードの多くを共有していてもです。

これは、あなたのレポの一時的なフォークを作成したときのスクリーンショットです。 比較 masterupstreambranch のように、記述してください。エラーメッセージに注目してください。 メッセージに注目してください。

と書かれています。

比較するものがない。

masterupstreambranch は全く別のコミット履歴です。

長い回答

おそらく、オリジナルのソースをダウンロードし、オリジナルのレポをクローンするのではなく、まったく新しい レポに追加したのではないでしょうか? そうすることで あなたのレポの履歴は 完全に異なる とは 新しいレポには同じ sha ID の同じコミットがないので、元のレポの歴史とは完全に異なるものです。 新しいリポジトリには、同じ sha ID を持つ同じコミットはありません。

のリバースログを実行することで確認できます。 master ブランチと upstreambranch :

# Your first commit, see commit sha
git log --reverse master
commit c548d7b1b16b0350d7fbdb3ff1cfedcb38051397 # <== HERE
Author: Padraic Stack <[email protected]>
Date:   Wed Apr 2 15:11:28 2014 +0100

    First commit of everything

# First commit sha of the original repo
git log --reverse upstreambranch
commit 105a12817234033c45b4dc7522ff3103f473a862 # <== THERE
Author: Jeremy Boggs <[email protected]>
Date:   Mon Feb 22 16:00:53 2010 +0000

    Creates repo directories for the Seasons theme.

ソリューション

元の履歴の上でコミットをやり直すと、ブランチを比較できるようになるはずです。 ブランチを比較することができます。コミットをやり直すには、次のような方法があります。 コミットをやり直すには、次のような方法があります。

git rebase --onto

git cherry-pick

また、必要であれば、各コミットを手動でやり直すこともできます。