2016-06-24 9 views
2

Appium 1.4ブランチとタグv1.4.16のHEADの違いを理解しようとしていて、git diffにタグとブランチを区別させる方法はありませんでした。gitタグとブランチの相違点

私が理解する限り、git diffの観点から見ると、タグとブランチの両方がコミットハッシュのエイリアスに過ぎません。

私は最終的に、ブランチヘッド(git checkout 1.4; git tag -a v1.4)を指すタグ 'v1.4'を作成してから、git diff v1.4.16..v1.4を実行して、その後の違いを確認できます。

これはちょっと変わったようですが、これが私が必要とするものを達成する唯一の方法ですか?

+0

また、タグの代わりにコミットのSHA-1ハッシュを使用することもできます。あなたの質問は何ですか? –

+2

あなたの質問の意図が本当に明確ではない。 Gitでは、いずれかのリファレンスが単に特定のコミットハッシュに解決されることは事実です。 'refs/heads/somebranch'と' refs/tags/sometag'との間には*完全な参照名のスペルのほかに、*インテント*が異なります。ブランチ名は、ブランチが発展するにつれて異なるコミットに解決することを意図していますタグ名は同じ単一のコミットを永遠に解決するためのものです。ただし、 'git diff'を実行すると、今すぐ*の名前を解決するだけで済みますので、気にする必要はありません。 – torek

+0

タグはコミットを指すことができますが、必ずしもそうとは限りません。ブランチrefはコミットを指します。コミットはツリーを指します。あなたの場合、タグとブランチの両方がコミットを指しています。したがって、タグとブランチの違いは、2つのコミット間、または2つのツリー間、または2つのツリー内の特定のブロブ間の変更を表示することです。 blob、tree、commit、tagのようなgitオブジェクトについて知るには、 'Pro Git'で 'Git Internals'の章を見ることができます。 – ElpieKay

答えて

3

大変お勧めの提案をいただき、ありがとうございます。問題は私が地元支店を持たなかったことにあると思われます1.4。私はいくつかの方法で(つまり、差分元のGitリポジトリ上のタグとブランチヘッドとの間の)私が欲しかったものを達成できます。

  1. git checkout 1.4付き)、それに切り替えて、その後私はgit diff v1.4.16
  2. を行うことができますリモートでそれを参照してください:git diff v1.4.16..origin/1.4

両方が私が望むことを達成しました。

関連する問題