問題タブ [git-log]

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 に答える
677 参照

git - Git get --source 情報を --format で

非常に特殊な形式で git ログをフォーマットしようとしています。

私はもともとgit log --format="%H,%an,%ae,%ad,%p"次の出力を生成するものを使用していました(コミットごとに):

現在、各コミットの参照 (つまり、タグ/ブランチ) 情報を取得しようとしています。コマンドを使用してこの情報を表示できます。これgit log --sourceは、必要なものを正確に示しています (つまり、コミット SHA の後にある参照)。

私がやろうとしているのは、元の--format="..."コマンドの最後にこの情報を含めることです。そのため、次のような出力が得られます。

フラグに基づいてコミットのブランチ/タグ/参照を参照する形式のプレースホルダーが見つからないようです。--source正しいプレースホルダーがないだけですか? または、必要なカスタム情報とともに参照をフォーマット/表示する別の方法はありますか?

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

git - Gitログのいくつかのトリック

gitリポジトリを分析する必要があります。したがって、次のことを実行できるgitのコマンドはありますか?

  1. 特定のディレクトリ内の各作成者/コミッターのコミット回数を計算します
  2. 過去から現在まで、開発者が特定のディレクトリに持っているファイルの平均数とファイルの種類は?
0 投票する
0 に答える
932 参照

git - Git - マージ後に失われたログ エントリ

どういうわけかうまくいかなかったマージの後、Git リポジトリが破損したようです。私がしたことは:

  • git checkout<本店>
  • git merge<機能ブランチ>
  • Git Extension/kdiff を介して解決した多くの競合が発生しました
  • 最後の競合が解決された後、Git 拡張機能からコミットするかどうか尋ねられました。コミットする前にマージ結果をもう少し確認したかったので、「いいえ」と答えました。
  • 次に、IntelliJ の「プロジェクトの更新」を使用して中央リポジトリから最新の変更を取得し、今後の予定git pushが拒否されないようにしました。IntelliJ の「更新されたプロジェクト」はgit stash; git pull --rebase; git stash apply.

    「プロジェクトの更新」コマンドでは、警告、エラー、またはマージの競合は発生しませんでした。

    このステップが私の問題の原因であると推測しています.Gitは進行中のマージを追跡できませんでした.

  • 次に、マージをコミットし、中央リポジトリにプッシュしました

Git 拡張機能を使用してリポジトリ履歴を参照すると、次の 2 つの問題が発生します。

  • Git は、フィーチャー ブランチがメイン ブランチにマージされたことを認識していないようです。

    マージの結果は問題ありませんが、Git 拡張機能の分岐履歴のグラフィカル表現には、フィーチャー ブランチからメイン ブランチへの線が表示されません。私のマージ コミットのログ エントリは、通常の非マージ コミットのように、メイン ブランチからそのまま続きます。

  • 「git log -- <機能ブランチで変更されたファイル>」を実行すると、実際にファイルを変更したすべてのコミットのログ エントリが表示されません。

    一部のファイルでは、マージ前に機能ブランチで行われた変更のログ エントリが欠落しています。

    他のファイルについては、競合の解決中にファイルが変更されたにもかかわらず、マージ コミットのログ エントリが見つかりません。

    「git log --full-history」を使用すると、欠落しているログ エントリを確認できます。

何が問題なのか、問題を解決するために何ができるのか、誰か説明できますか? マージの競合を修正するのに数時間を費やしましたが、可能であれば、すべてをやり直さずにマージ結果を保持したいと考えています。

ありがとう!

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

git - git log --pretty をエラーのあるファイルに

私がやる:

正しい結果:

私のファイルに:

ファイル出力に保存すると、間違った結果が表示されます:

私はきれいなフォーマットなしで試してみましたが、完璧に動作します。後できれいなフォーマットで試してみましたが、うまくいきません!

これをきれいな形式でファイルに保存するにはどうすればよいですか?

ありがとう。

0 投票する
4 に答える
7074 参照

git - タグなしのgitログ

だから私は次のようなことをしています

最近のコミットの簡単な履歴を取得します。

私が抱えている唯一の問題は、ほとんどの場合、タグを表示することに興味がなく、ブランチだけを表示することに興味があるということです。ただし、%dはタグとブランチの両方を表示します。タグではなくブランチ名のみを表示できる方法はありますか?

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

git - 特定のブランチのみの Git ログを取得するにはどうすればよいですか?

次の Git 履歴があるとします。

git log masterを実行すると、 ABCDEFGHの順序でログ エントリが表示されます。- しかし、私はマスターオンリーの歴史に興味があります (つまり、ADEH )

Branch1から不要なログエントリを「取り除く」にはどうすればよいですか? git logの多くのオプションを試しましたが、適切なものが見つかりません...


これは、この文脈で私が理解していないさらなることにつながります:

git log masterによって提供されたログ履歴を見ると、ブランチ マスターがどのように進化したか ( ABCDEFGH ) が示されます。

しかし、git checkout HEAD~1 (master=HEAD と仮定) を実行すると、 E (Evolution HEAD~3 : A - HEAD~2 : D - HEAD~1 : E - HEAD : H -> ADEH )が得られます。

これは私が理解していないことです: git logを見ているHの先祖はGですが、 git checkoutを見ているHの先祖はEです。

私はこれを理解していません - H : GまたはEの先祖は何ですか?...


結論:私が欲しいのは、 HEADからHEAD〜nまでのgitログエントリのみです(たとえば、n = 1 ... 3の上)。これはどのように達成できますか?それはまったく可能ですか?

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

git - ブランチを単なるエチケットとして残しますが、GITでブランチにアクセスすることはできません

ブランチを仮想的に削除できるようにしたいので、誰もそれをチェックアウトしてその時点から変更を加えることはできませんが、ブランチの名前をインジケーターまたはエチケットとして履歴に残します。

つまり、削除したかどうかに関係なく、gitkに過去のブランチの名前を表示し続けてもらいたいのです。

これは可能ですか?

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

jgit - JGitを使用して変更されたファイルのリストを取得するには?

JGit を使用して、git log --name-status で可能なように、コミット時に変更されたファイルのリストを取得したいと考えています。

これは可能ですか?もしそうなら、どのようにしますか?

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

git - gitk および Eclipse Egit に表示されるブランチの順序/列に影響を与えることはできますか?

実行するgitk --allと、リポジトリ全体のコミット/ブランチ/タグの優れた要約が得られます。

ただし、ブランチの表示方法は常に一貫しているわけではなく、Egit が Eclipse の履歴ペインで使用する方法とも異なります。

gitk と egit のいずれかまたは両方の列の順序を制御する方法はありますか?

具体的には、最初 (一番左) の列に master へのコミットを常に入れたいと考えています。

(可能であれば、nvie モデルのダイアグラムを 180 回転させたいのですが、左側のマスターとの順序が一致していれば十分です。)

gitk はほとんどのgit-logパラメーターを受け入れると読んだので、man ページを確認しましたが、これを行うオプション (存在する場合) がわかりませんでした。(そして、それが正しいルートである場合、これらのオプションを使用するために egit を取得するにはどうすればよいでしょうか?)

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

git - GITウィークリーアクティビティ

毎週のGITレポートを生成したいと思います。このレポートでは、特定の時間枠で各開発者によって送信および削除されたコードの数を確認できます。

目的は、特定の時間枠での開発者の活動の一般的な概要を取得することです

  • 開始日
  • 終了日
  • デベロッパー
  • コミット
  • 追加されたコード
  • 削除されたコード

これらの情報をcsvにエクスポートできれば素晴らしいと思います