私はそれが指定されたファイルにすべての変更(コミット)を表示すると思っていますが、それはしません。それはそれらのいくつかだけを示しています。私はそれが合併と関係があると思うが、ここで何がうまくいかないのか分からない。誰かがそれを説明できますか?`git log -p path/to/file`はすべての変更を表示しません
UPD私はテストレポで私の特定の問題を再現することができました:
#!/usr/bin/env bash
set -eu
rm -rf 1
mkdir 1 && cd 1
git init
mkdir 1
echo m1 > 1/m1 && git add 1/m1 && git commit -m m1
git co -b b1
echo m11 > 1/m1 && git add 1/m1 && git commit -m b11
echo m1 > 1/m1 && git add 1/m1 && git commit -m b12
git checkout master
echo m2 > m2 && git add m2 && git commit -m m2
git merge b1 -m 'merge b1'
git --no-pager log --graph --oneline --decorate --all
git --no-pager log --oneline 1
がb11
コミットし、b12
が最後のコマンドで表示されていません。
実際、このように動作しますが、私が話している変更は過去に長く続いていました。つまり、現在存在するブランチにあるコミットについては言及していません。このように '--all'スイッチを使うと、' git'がすべてのパスをたどるようになります。それがなければ、彼らはそれらのいくつかだけを選ぶ。 –
あなたをフォローしていません。もう1つのオプションは、クローンがどのように行われたか、それがフェッチする履歴を制限するレポをクローンするときに--depth引数を指定することです。これを行うと、複製されたレポではなく、完全な履歴が表示されないことがあります。 – DavidN
"つまり、私は現在存在するブランチにあるコミットについては言及していません。彼らは今存在しているブランチにいるのか、現在のブランチにいるのですか? '--all'は、現在のブランチのコミットだけでなく、現在存在するブランチを含みます。 (ブランチにコミットされていないコミットは、まったく表示されていません)。 –