2013-10-29 21 views
8

私はリモートブランチ(非オリジン)から、そして具体的には特定のタグから大きな変更をマージしようとしています。タグtagged_ideaで、proposalリモートオンGit diff with remote tag

  1. origin
  2. proposal

、支店名ideaが存在する:

は、2つのリモコンがあります。

考えてみると、tagged_ideaと現在のHEADの間の着信の変更を確認したいと考えています。どうすればこれを達成できますか?

git diff .../proposal/tags/tagged_ideaのようなものを試しましたが、うまく機能しませんでした。何か案が?

私が見たいと思っているのは、マージの結果です。私のブランチでもそれをやっています。ちょうど私がプルを行った場合のように、実際に変更を加えることなくgit pull proposal tags/tagged_idea

+0

何も変更する必要がない場合、どこで変更を確認したいですか?少なくとも私のワークフローでは、ローカルコピーですべての種類のマージ/変更/を行うことができますが、それは私がそれが気に入らなければ元に戻すのに十分簡単です。私はそれが好きになると、それは適切なリモートにプッシュされる。 –

+0

私はdiffの出力に相当するものが大好きです。 – aspyct

+0

"それはうまくいかなかった"とはどういう意味ですか? –

答えて

10

ほとんどのgitコマンドは、ローカルでのみ動作します。 git diffgit mergeのようなものです。

ローカルリポジトリには、複数のリモコンを持つことができますが、これらの上で動作するためには、あなたが最初にあなたのリモコンでローカルリポジトリを同期する必要があります。

git fetch --all 

これは、すべてのチェンジセットをダウンロードしますが、それは適用されません現在のブランチがリモートのいずれかを追跡している場合を除いて、それらを現在の支店に転送します。

リモートチェンジとタグをダウンロードしたら、あなたは、単にような何かを実行することができます

git diff tagged_idea 

を...そしてあなたHEAD現在とタグtagged_idea、どこ後者の存在との差分を参照してください。

+2

'git git pullの代わりに 'fetch'を実行しても、新しいコミットはすべて得られますが、gitは' pull.rebase'や他のgit configの設定に応じてマージを試みません。 「追跡」ブランチにあります。 (force-pushしたリモートブランチと、 'git pull --rebase'ができる"スマートな "リベースを使って自動rebaseするのを普通に追跡するのであれば、ちょっと注意が必要ですが、それは非常に珍しいワークフローです) – torek

+0

@トレック良いポイント;私はそれに応じて私の答えを更新 –

1

私はgit ls-remote --tags proposal |grep tagged_ideaを使用してリビジョンハッシュを取得し、次にハッシュでgit diffを実行します。