[解決済み] 行が削除されたときのコミットを見つけるには?
質問
Git リポジトリのファイルに、削除された行があります。削除されたテキストとそのファイルがあることは知っていました。
git log -S'missingtext' /path/to/file
.
しかし、戻ってきたのは欠落していたテキストを含む行を追加したコミットだけでした。テキストは HEAD には存在せず、それを追加したコミットは私のブランチに存在していたので、私のブランチの履歴にあるコミットのいずれかがそれを削除したはずだとわかっていましたが、それは表示されていませんでした。
手動で検索した結果、その行はマージの競合を解決する際に誤って削除されたことが判明しました。ですから、私は不思議に思っています。
- pickaxe が行を削除したコミットを見つけられなかったのはこのためでしょうか。
- どうすれば "missingtext" が削除された場所を、履歴を手動で掘り起こすことなく見つけることができたのでしょうか?
1 についてのどんな洞察も素晴らしいでしょう (私は次のように仮定しました。
git log -S
が私の答えを与えてくれると思っていました)、しかし、私の本当の質問は、将来これを避けることができるようにしたいので、#2 です。
どのように解決するのですか?
git log -c -S'missingtext' /path/to/file
git log
は、デフォルトではマージコミットの diff を表示しません。試しに
-c
あるいは
--cc
のフラグがあります。
もっと議論・説明をしてください。
https://git-scm.com/docs/git-log
ナブルドットコム
git-logのドキュメントより。
-c このオプションを指定すると、マージコミットの差分出力は、親とマージ結果のペアごとの差分ではなく、それぞれの親からマージ結果までの差分を同時に表示します。 親と結果のペアごとの差分を表示するのではなく、同時に表示します。 を一度に表示するのではなく、それぞれの親からマージ結果までの差分を同時に表示します。さらに、すべての親から変更されたファイルだけがリストアップされます。 のみをリストアップします。
--cc このフラグは -c オプションを暗示し、さらにパッチの出力を圧縮します。 親にあるコンテンツが 2 つのバリエーションしかなく、 マージ結果がそのうちの 1 つを選択するような、興味のない hunk を除外することで、 パッチ出力をさらに圧縮します。 を修正なしで選びます。
関連
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] コミットに含まれるすべてのファイルを一覧表示するにはどうすればよいですか?
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] ある特定のコミットのコミット作者を変更する方法は?
-
[解決済み] 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 pull エラー: .git/FETCH_HEAD を開けない: パーミッションが拒否されました。
-
エラーが発生しました。マージされていないファイルがあるため、プリングはできません
-
コミットには何も追加されないが、未追跡のファイルが存在する解決策
-
[解決済み] 削除した行を「git blame」するにはどうすればいいですか?
-
[解決済み] gitにもsvnのような無視コマンドはありますか?
-
[解決済み] 新サーバーへのGitプッシュ/クローン
-
[解決済み] なぜgit AuthorDateはCommitDateと違うのですか?
-
[解決済み] Git git reset」後にコミットメッセージを再利用/保持するには?
-
[解決済み] git add --patch' で新しいファイルをインクルードする?
-
[解決済み] Git の 'master' ブランチを 'release' にリネームするには?