問題タブ [git-blame]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
814 参照

git - ファイル内で移動/削除されたコードの Git 追跡ブロック

コミットの本文 (コミットのタイトル/メタデータではありません) に古いコミットがありmd5hashます。myfile.extensionSOME CHANGE

各差分を検査することなく、 fromにSOME CHANGE至るまでのコミットで変更された (存在するだけでなく) コミットのリストを生成するにはどうすればよいですか? (残念ながら、現在のケースでは多くあります。)HEADmd5hash

私は試しましたが、これはファイル内にあるgit rev-list --all | xargs git grep 'SOME CHANGE'すべてのコミットを見つけるようです。SOME CHANGE

git blameSOME CHANGE行が変更されて移動したため、役に立たないようです。

0 投票する
0 に答える
57 参照

git - Git Gui Blameの「元の作成者」および「ここにコピーまたは移動された」とはどういう意味ですか?

通常、Git Gui Blame の行にカーソルを合わせると、コミット ハッシュ、作成者/日付、およびコメントだけを含むツールチップが表示されます。

ここに画像の説明を入力

しかし、2 つのコミットを示す tooptip を見たところです。

ここに画像の説明を入力

それらは正確にはどういう意味ですか?Git Blame は、コード行が移動またはコピーされたことを何らかの方法で検出しますか?

0 投票する
2 に答える
1088 参照

git - 誰かが git で変更した文字列を検索するにはどうすればよいですか?

を使用して特定の文字列を検索したいのですが、探している文字列が特定の人によって変更されたことを知るために、git grepを使用して結果をフィルタリングしたいと思います。git blame

それらをどのように組み合わせて、必要な結果を得ることができるかわかりません。

ご協力ありがとうございました。

0 投票する
2 に答える
1049 参照

git - --no-ff マージはどのように分割と非難を破りますか?

Gitワークフローの記事を理解すると、

そこで、新しいルールを追加します。「フィーチャー ブランチにマージするときは、–no-ff を使用して新しいコミットを強制します。」これで作業が完了し、先に進みます。

ある日、本番環境で重大なバグを発見し、いつ導入されたかを追跡する必要があります。bisect を実行しますが、チェックポイント コミットに到達し続けます。あなたはあきらめて手で調べます。

バグを 1 つのファイルに絞り込みます。過去 48 時間でどのように変化したかを確認します。それが不可能であることはわかっていますが、Blame はファイルが何週間も変更されていないと報告しています。マージされたときではなく、最初のコミット時に Blame レポートが変更されることが判明しました。あなたの最初のチェックポイント コミットは数週間前にこのファイルを変更しましたが、変更は今日マージされました。

ノーフバンドエイド、壊れた二等分、および非難の謎はすべて、ドライバーをハンマーとして使用しているという症状です.

git merge--no-ffは、早送りマージを明示的に防止する場合です。ただし、あるコミットが別のコミットの直接の祖先でない場合、早送りは行われません。これは、開発中のまれなシナリオです。つまり、ほとんどのマージは非早送りタイプです。では、渡すと and--no-ffの機能がどのように損なわれるのでしょうか?bisectblame

0 投票する
2 に答える
2160 参照

git - git Blame 削除されたファイル、自動的に

git blame以前に削除されたファイルで実行する方法はよくある質問です (でgit rm)。古いファイル名で実行すると、存在しないファイルと同じエラーが発生します。

(以前のコマンドに対して git によって出力された応答は、簡潔にするために省略されています。)

一般的な解決策はgit log --stat、ファイルが削除されたリビジョンを探すことです。その後、そのリビジョンの親を に渡すことができますgit blame:

これは機能しますが、このようにログを手動で検索するのは面倒です。agitに「過去のリビジョンで呼び出されていたファイルを調べたい」と伝える方法はありませんか? 私は次のような簡単なものを望んでいます

その名前のファイルのリポジトリの履歴全体を自動的にチェックします。

0 投票する
3 に答える
14202 参照

git - IntelliJ 注釈と git の非難

IntelliJ の注釈機能を使用して、ファイル内の行を最後に変更したエディターを確認しています。

現在、JGit を使用して同じ注釈を読み取っていますが、それらは異なります。私にとっては、Intellij は、コミット間で行が変更されていないことを確認し、古いコミット メッセージを引き続き使用しているようです。JGit はそれを認識しないため、別のメッセージを作成します。

JGit Blame と IntelliJ の動作が異なることを確認できる人はいますか? 理由は何ですか?IntelliJをJGitと同じように動作させるにはどうすればよいですか? 多分IntelliJは空白の変更を無視しますか?

IntelliJ 15.0.1 と JGit 4.1.1 を使用しています

0 投票する
1 に答える
269 参照

git - Git: `git bisect` と `git Blame` の `--full-history` に相当

私は約 7 年間、Git を多用しています。数日前、私は驚くべき振る舞いを見つけました。を見つけgit log、この奇妙な動作を示しgit blameました。友人が私の問題を解決したフラグについて教えてくれました。私自身の教育のために、 と の同等の修正があるかどうかを知りたいです。git bisect--full-historygit loggit blamegit bisect

このレポで問題を確認してください: https://dl.dropboxusercontent.com/u/1927707/problematic_repo.7z

そのログは次のとおりです。

最初のコミットで、ファイルcoffeeが追加されました。commit3068c7dで、「sugar」という行をcoffeeファイルに追加しました。しかし、その後、このブランチをdevelopmentブランチにマージしましたが、そのマージでミスが発生し、「sugar」行が削除されてcoffee空のままになりました。その後、別の commitb7a8d7aが追加され、無関係な変更が加えられました。

今、私は自分のコーヒーを見て、砂糖が入っていないことを発見しました. コーヒーに砂糖を入れたことをはっきりと覚えています。を実行するgit log coffeeと、次の出力が得られます。

それでおしまい。git log砂糖を追加した元のコミットも、それを削除したマージも示していません。欠落している 2 つの非常に関連性の高いコミット。

手動でコミットを見つけるのがはるかに難しい大規模なエンタープライズ リポジトリで発生したため、この問題に約 1 時間イライラしました。

また、 と を使用して 2 つのコミットを特定しようとしましたが、これらのツールはどちらも 2 つのコミットを無視しましたgit bisect。すべてのandアクションを完了した後、間違ったコミットを指摘してくれました。git blamegit bisectgit bisect badgit bisect good

--full-historyそれから、最初に言ったように、友人が私を旗に向けました:

関連する 2 つのコミット (砂糖を追加するコミットとそれを削除するマージ) が示されているので、これは嬉しいことです。だから私の問題は解決しました。でも、作り方や振る舞い方も知りたいです。git bisectgit blame誰かがたまたま知っていますか?