1. ホーム
  2. git

[解決済み] 前回プルしたときから何が変わったのか、git diff を作成するにはどうすればよいのでしょうか?

2023-08-11 04:20:44

質問

私は、できればrakeで、以下のアクションを1つのコマンドにスクリプト化したいです。

  1. 私のローカル git リポジトリのバージョンを取得します。
  2. 最新のコードをgit pullします。
  3. 手順1で抽出したバージョンから、現在ローカルリポジトリにあるものへの Git diff を取得します。

言い換えると、中央のリポジトリから最新のコードを取得し、前回取り出したときから何が変わったのかの diff をすぐに生成したいのです。

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

refspecsを使えば、かなり簡単にできるはずです。

git pull origin
git diff @{1}..

これで、現在のブランチがプルされる前と後の diff が得られます。もし pull が実際に現在のブランチを更新していなければ、diff は間違った結果を返すでしょう。もう一つの方法は、現在のバージョンを明示的に記録することです。

current=`git rev-parse HEAD`
git pull origin
git diff $current..

私は個人的に、最後のプル以降のすべてのコミットのログを逆順(つまり古いものから新しいものへ)、マージなしで表示するエイリアスを使用しています。私は、私のプルがブランチを更新するたびにこれを実行します。

git config --global alias.lcrev 'log --reverse --no-merges --stat @{1}..