問題タブ [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.
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' を表示する方法についての回答を探しています。
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 が含まれていない場合、唯一賢明なことは、推測を行う代わりに終了することです (そして、ユーザーにどのように推測したかを伝えません)。
git - 以前のコミッタ名をgitに保持するには?
コードをクリーンにするために、astyle を使用します。問題は、誰かに仕事をしてもらいたいということですが、以前のコミッター (コードの実際の作成者であり、クリーンアップした人ではありません) を非難しています。
git で安全に行う方法はありますか?
git - 「git Blame」は何をしますか?
の使い方に関する質問をよく見かけましたが、git blame
よくわかりません。
BlameGitHub インターフェイスのファイルの上にボタンが表示されます。クリックすると、左側のバーにユーザー名との差分が表示されます。それは何を示していますか。
git blame
GitHub 以外で実際に使われているのはなぜですか?
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 と何か関係がありますか?
git - Gitは削除されたファイルを元に戻し、ファイル履歴を保存します
file があるとしますa.txt
。ある日、私はそれを削除し、コミットし、プッシュしました。
翌日、最後のコミットを元に戻したいと思っていましたa.txt
。を使用してみgit revert
ましたが、使用するとgit blame
、すべての行に復帰コミット ハッシュが表示されます。元の責任履歴は失われます。
ファイルを復元して、ファイルの履歴を保持することはできますか? コミットがプッシュされたので、履歴を変更してはならないことに注意してください。
ありがとう!
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~50
HEAD
HEAD~50
git - 競合を解決した場合、Git Blame は変更されますか?
マージの競合がバグの原因であるかどうかを把握しようとしていますが、競合の解決がgit blame
.
マスターにファイルがあるとしましょう:
私はマスターでそれを変更します:
しかし、同僚もそうであり、別のブランチで別の方法で変更し、それを master にマージします。
その対立を解決することは責任に影響を与えることができますか? つまり、同僚が私のバージョンを使用して競合を解決した場合:
誰が非難されるgit blame
のd();
ですか:私または私の同僚?
同様に、git が混乱し、1 行目と 2 行目が競合していると考えたとします。
同僚が自分のバージョンとの競合を解決した場合:
そして、私git blame
がそのa();
行を書いた場合、私 (行の元の作成者) が責任を負うのでしょうか、それとも同僚 (変更していないにもかかわらず、最後に「触れた」人) が責任を負うのでしょうか?