問題タブ [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 投票する
0 に答える
468 参照

xcode6 - 壊れた Xcode の「git Blame」/「git log」パネルを修正するにはどうすればよいですか?

しばらくの間、比較パネルでgit log&を使用する機能が Xcode にあることに満足していました。git blame

最近のある時点で、このパネルには何も表示されなくなりました。

「blame」モードでは、パネルは空白で、テキスト エディターと同じ色です。

「ログ」モードでは、しばらくの間 git ログを表示しているときと同じように、パネルは白ですが、パネルには何もありません。

ソース管理をオフにしてからオンに戻そうとしました。

私はそれを試し、Xcodeを終了して再起動し、そのさまざまな組み合わせを試みました。

Xcodeを削除して再インストールしてみました。

SourceTree の git Blame は、私の Xcode プロジェクトに関連付けられたリポジトリ (ターゲットごとに 1 つずつ、合計 3 つのリポジトリがあります) で引き続き機能します。ただし、Xcode 内ではありません。

Xcode 環境を再構築して 'git flame' と 'git log' を表示する方法についての回答を探しています。

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

git - git Blame が名前変更に従わないのはなぜですか?

お気づきのとおり、ファイルはそのコミットの別のディレクトリにありました

ドキュメントにもかかわらず

非難は名前変更に従いません。なんで?

更新:短い答え

git blame名前の変更に従いますが、git blame COMMIT^ -- <filename>

しかし、大量の名前変更と大量の履歴を介して手動でファイルの名前変更を追跡するのは非常に困難です。の名前変更を黙って追跡するには、この動作を修正する必要があると思いますgit blame COMMIT^ -- <filename>。または、少なくとも--follow実装する必要があるため、次のことができます。git blame --follow COMMIT^ -- <filename>

UPDATE2:それは不可能です。以下をお読みください。

メールリストからの回答by Junio C Hamano

git blame名前の変更に従いますが、git blame COMMIT^ -- <filename>

バージョン v1.0 にファイル A とファイル B があるとします。

6 か月後、コードは大幅にリファクタリングされたので、これら 2 つのファイルの内容を個別に取得する必要はありません。あなたは A と B を削除し、それらが持っていたものの多くは現在ファイル C にあります。それが現在の状態です。

内容はどちらからでもいいのです 、言わせてもらえば

それはどういう意味ですか?C は v1.0 ではまったく存在しませんでした。当時のAの内容を踏襲するか、Bの内容を踏襲するか。このコマンドで C と言ったとき、B ではなく A を意味しているとどのように言いましたか?

「git Blame」はコンテンツの移動に従い、「名前の変更」を特別な方法で扱うことは決してありません。

コマンド ラインからどのコンテンツから掘り始めるかをコマンドに伝える方法は、開始点 commit (デフォルトは HEAD ですが、例として COMMIT^ を指定することもできます) とその開始点のパスを指定することです。C を Git に伝えてから、魔法のように A を意味する場合もあれば、B を意味する場合もあると推測させるのは意味がないためです。v1.0 に C が含まれていない場合、唯一賢明なことは、推測を行う代わりに終了することです (そして、ユーザーにどのように推測したかを伝えません)。

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

git - 以前のコミッタ名をgitに保持するには?

コードをクリーンにするために、astyle を使用します。問題は、誰かに仕事をしてもらいたいということですが、以前のコミッター (コードの実際の作成者であり、クリーンアップした人ではありません) を非難しています。

git で安全に行う方法はありますか?

0 投票する
6 に答える
260280 参照

git - 「git Blame」は何をしますか?

の使い方に関する質問をよく見かけましたが、git blameよくわかりません。

BlameGitHub インターフェイスのファイルの上にボタンが表示されます。クリックすると、左側のバーにユーザー名との差分が表示されます。それは何を示していますか。

git blameGitHub 以外で実際に使われているのはなぜですか?

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

git - git Blame - 致命的: 不正なリビジョン '22'

このページ ( http://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git ) によると、使用するときは行番号の間にコンマを使用する必要がありますgit blame

ただし、Powershell を使用して Windows マシンで試してみると、次のようになります。

私は得るfatal: bad revision '22'

どうしたの?Powershell と何か関係がありますか?

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

git - Gitは削除されたファイルを元に戻し、ファイル履歴を保存します

file があるとしますa.txt。ある日、私はそれを削除し、コミットし、プッシュしました。

翌日、最後のコミットを元に戻したいと思っていましたa.txt。を使用してみgit revertましたが、使用するとgit blame、すべての行に復帰コミット ハッシュが表示されます。元の責任履歴は失われます。

ファイルを復元して、ファイルの履歴を保持することはできますか? コミットがプッシュされたので、履歴を変更してはならないことに注意してください。

ありがとう!

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

git - git Blame -S の使用方法

revs-fileの引数の形式は何git blame -Sですか?

次の出力で実行しようとしましたgit rev-listが、非難はすべての行をHEADコミットに属性付けます。

git blame -S <(git rev-list HEAD~50 HEAD) $file

それが問題だった場合に備えて、<(git rev-list ... | tac)逆に実行しようとしましたが、同じ出力が生成されるようです。revs-file

目標は、 の各行を と の間のコミットのせいに$fileすることです。デフォルトは、同じ行がすべてのコミットに存在する場合です。HEAD~50HEADHEAD~50

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

git - 競合を解決した場合、Git Blame は変更されますか?

マージの競合がバグの原因であるかどうかを把握しようとしていますが、競合の解決がgit blame.

マスターにファイルがあるとしましょう:

私はマスターでそれを変更します:

しかし、同僚もそうであり、別のブランチで別の方法で変更し、それを master にマージします。

その対立を解決することは責任に影響を与えることができますか? つまり、同僚が私のバージョンを使用して競合を解決した場合:

誰が非難されるgit blamed();ですか:私または私の同僚?

同様に、git が混乱し、1 行目と 2 行目が競合していると考えたとします。

同僚が自分のバージョンとの競合を解決した場合:

そして、私git blameがそのa();行を書いた場合、私 (行の元の作成者) が責任を負うのでしょうか、それとも同僚 (変更していないにもかかわらず、最後に「触れた」人) が責任を負うのでしょうか?