16

同僚がマスターからローカルブランチ('branchA')を作成し、いくつかの作業を行い、それをプッシュし、マスターにマージし、さらにいくつかの作業を行い、再度プッシュしました。同時に、他の同僚が他のブランチに取り組んでおり、それらをマスターにマージしています。

次に、branchAをプルして確認する必要があります。だから私はやったしgit pullgit checkout -b branchA origin/branchAそれは大丈夫です。ただし、すべてのコマンド(git diff / log / show)は、リポジトリ内のすべてのブランチで行われたコミットを表示します。

branchAに対して行われたすべてのコミットと、それが作成されたマスターのバージョンとの差分を表示するにはどうすればよいですか?

またgit diff、マスターの現在のHEADに対してbranchAを実行するにはどうすればよいですか?ただし、branchA内で変更されたファイルのみを表示できますか?

4

5 に答える 5

18

branchA以下は、2番目の質問、とローカルの現在のバージョンとの違いを見つける方法に当てはまりますmaster。'double dot'構文を使用して、にないgit logすべてのコミットを確認します。ウィットに:branchAmaster

git log master..branchA

git logマニュアルページによると:

SYNOPSIS
   git log [<options>] [<since>..<until>] [[--] <path>...]
   ...
   <since>..<until>
   Show only commits between the named two commits. When either <since> or <until> is omitted, it defaults to HEAD, i.e. the tip of the current branch.
   For a more complete list of ways to spell <since> and <until>, see gitrevisions(7).

コミットをどちらか一方または両方で表示したいがmasterbranchA両方では表示したくない場合は、「トリプルドット」構文を使用できます。

git log master...branchA

最後に、とまったく同じ構文を使用できます。git diffつまり、それぞれ、git diff master..branchAgit diff master...branchAです。

余談ですが、branchAチェックアウトしている場合は、として指定する必要はありません<until>。GitはHEAD、指定されていない場合を想定するため、次の2つのコマンドセットは同等です。

git checkout branchA
git log master..

git log master..branchA
于 2012-08-01T11:20:24.183 に答える
3
  1. git diff master..brnachA: master の HEAD と branchA の間で変更されたすべてのファイルを比較します。
  2. git diff master...brnachA: branchA を作成元の master のバージョンと比較します。

参考git diffまでに、コマンドラインで出力を生成します。いくつかのビジュアル ツールで出力を確認したい場合は、 を使用しますgit difftool

git diffすべての引数とオプションを渡すこともできgit difftoolます。

于 2012-08-01T11:27:43.813 に答える
1

Git コミットは、コミットされた「どのブランチ」に関する情報を保持しません。それらは、あなたが歩いて戻ることができるツリー内のポイントを提供するだけです. マージが発生すると、マージ コミットから、どの親が開始元のブランチから来たかを判断する方法がありません。これについては、こちらで詳しく説明しています。

これが私の理解です。間違っていたら訂正していただきたいです。

于 2012-08-01T11:22:05.183 に答える
0

git log --branches=mybranch を使用できます

これにより、特定のブランチのログが表示されます

于 2012-08-01T11:09:50.517 に答える
0

master ブランチにいる場合は git log HEAD..branch 。

詳細については、こちらを参照してください: git のブランチで変更を取得する方法

于 2012-08-01T11:30:26.417 に答える