[解決済み] git diff ファイル名を変更
2022-09-25 22:27:18
質問
私は、あるファイル
a.txt
.
cat a.txt
> hello
の内容は
a.txt
は "hello"です。
コミットしています。
git add a.txt
git commit -m "first commit"
次に
a.txt
を
test
のディレクションを行います。
mkdir test
mv a.txt test
そして、2回目のコミットを行います。
git add -A
git commit -m "second commit"
最後に
a.txt
を編集して、代わりに "goodbye"と言うようにします。
cat a.txt
> goodbye
最後のコミットをします。
git add a.txt
git commit -m "final commit"
さて、ここからが私の質問です。
の内容を差分するにはどうすればよいのでしょうか?
a.txt
の内容を最後のコミットと最初のコミットの間で差分するにはどうしたらよいでしょうか?
試してみたのですが
git diff HEAD^^..HEAD -M a.txt
を試しましたが、うまくいきませんでした。
git log --follow a.txt
はリネームを適切に検出しますが
git diff
. あるのでしょうか?
どのように解決するのですか?
の違いの問題。
HEAD^^
と
HEAD
を持つということです。
a.txt
があることです。したがって、この二つのコミットを考慮するだけでは (diff が行うことです)、リネームではなく、コピーと変更が行われただけです。
コピーを検出するには
-C
:
git diff -C HEAD^^ HEAD
結果
index ce01362..dd7e1c6 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1 @@
-hello
+goodbye
diff --git a/a.txt b/test/a.txt
similarity index 100%
copy from a.txt
copy to test/a.txt
ちなみに、diff を一つのパスだけに限定した場合 (
git diff HEAD^^ HEAD a.txt
のように)、1 つのパス以外のすべてを除外しているため、リネームやコピーが表示されることはないでしょう。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[git push] 解決策: ! [リモート拒否] master -> master (受信前のフックは拒否されました)
-
Gitで「このリポジトリでは別のgitプロセスが実行されているようです...」と表示される問題
-
git pull reports エラー: :cannot open .git/FETCH_HEAD:Permission denied (.git/FETCH_HEADを開くことができません。
-
Gitのエラーについて覚えておく-すべて最新にする
-
git reports an error fatal: unable to auto-detect email address (got 'Administrator@MS-20180504MMDH.(none)')
-
[解決済み] Jenkins Pipeline Git SCM を認証情報でチェックアウトする?
-
[解決済み] JenkinsのGitプラグイン。特定のタグをビルドするには?
-
[解決済み] フォルダからサブモジュールのリポジトリを作成し、そのgitコミット履歴を保持する
-
[解決済み] Git のリモート HEAD を master 以外に指定するように変更する
-
[解決済み] gitで、stashを適用せずに、追跡されていないstashedファイルを表示する方法はありますか?