問題タブ [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.
git - 「失われた」コミットを含む、すべてのgitコミットのリストを取得します
次のようなグラフがあるとしましょう。
そうした場合git log --all --oneline
、6つのコミットすべてを取得します。
しかし、グラフが
EとFは表示されません。名前が付けられていないブランチのコミットを含め、すべてのコミットをgitに通知してもらえますか?
ありがとう
git - Gitは、あるファイルから別のファイルへの1つの関数の移動を実際に追跡できますか?もしそうなら、どのように?
あるファイルから別のファイルに単一の関数を移動すると、Gitがそれを追跡できるという声明に何度か出くわしました。たとえば、このエントリには、「関数をあるファイルから別のファイルに移動すると、Gitは移動中のその単一の関数の履歴を教えてくれるとLinusは言っています」と書かれています。
しかし、私はGitの内部設計のいくつかに少し気づいており、これがどのように可能であるかわかりません。だから私は疑問に思っています...これは正しいステートメントですか?もしそうなら、これはどのように可能ですか?
私の理解では、Gitは各ファイルのコンテンツをBlobとして保存し、各Blobは、そのコンテンツとサイズのSHAハッシュから生じるグローバルに一意のIDを持っています。次に、Gitはフォルダーをツリーとして表します。ファイル名情報はすべてBlobではなくTreeに属しているため、たとえばファイル名の変更は、BlobではなくTreeへの変更として表示されます。
したがって、20個の関数を含む「foo」というファイルと5個の関数を含む「bar」というファイルがあり、関数の1つをfooからbarに移動すると(それぞれ19と6になります)、その関数をあるファイルから別のファイルに移動したことをGitはどのように検出できますか?
私の理解では、これにより2つの新しいblobが存在します(1つは変更されたfoo用、もう1つは変更されたbar用)。関数が1つのファイルから別のファイルに移動されたことを示すためにdiffを計算できることに気付きました。しかし、関数に関する履歴がfooではなくbarに関連付けられる可能性があるかどうかはわかりません(とにかく自動的ではありません)。
Gitが実際に単一のファイルの内部を調べ、関数ごとにblobを計算する場合(可能な言語を解析する方法を知っている必要があるため、これはクレイジー/実行不可能です)、これがどのように可能であるかがわかります。
それで...ステートメントは正しいかどうか?そしてそれが正しければ、私の理解に欠けているものは何ですか?
git - Gitログに今日のすべてのコミットを表示させるにはどうすればよいですか?
を使用して今日行ったすべてのコミットを確認できるようにしたいと思いますgit log
。私が思いついたgit log --after="yesterday"
のですが、それは私には少し厄介に思えますが、同じ効果を達成するためのより簡単なコマンドはありますか?
git - 「since」および「until」パラメーターを使用するように git log を取得できないのはなぜですか?
git log ヘルプページから:
since..until 指定された 2 つのコミットの間のコミットのみを表示します。または を省略すると、デフォルトで HEAD、つまり現在のブランチの先端になります。および を綴る方法のより
完全なリストについては、gitrevisions(7) を参照してください。
しかし、私はそれを機能させることができません。git log 32c67ec..HEAD
は、ログ全体の不明な大きなサブセットを示しています。
git - gitロググラフの読み方
gitコミュニティブックでは、
あなたができるもう一つの興味深いことは、次のように、「-graph」オプションを使用してコミットグラフを視覚化することです。
これにより、コミット履歴行の非常に優れたASCII表現が得られます。
このグラフはどのように読むべきですか?他とどう420eac9
違うのですか?
git - `git log --grep= を反転する方法` またはパターンに一致しない git ログを表示する方法
git log
特定のパターンに一致しないすべてのコミットを表示するために使用したいと考えています。以下を使用して、パターンに一致するすべてのコミットを表示できることを知っています。
一致の意味を反転するにはどうすればよいですか?
メッセージに「バージョンにぶつかった...」というコミットを無視しようとしています。
編集:最終出力をかなり冗長にしたい。例えばgit log --pretty --stat
。したがって、からの出力git log --format=oneline
は機能しません。
git - git-log の色
実行すると、出力には配色git log --decorate --pretty=oneline
のようなエントリが含まれます。(HEAD, refs/published/master, master)
私のgitconfigには次のものもあります:
次のようなカスタム フォーマットを実行するときに、これらの色をどのように複製しますか?
git - 特定のコミットの「gitlog」パッチを取得するにはどうすればよいですか
まだオリジンにプッシュされていないコミットハッシュがある場合、そのコミットのみのパッチを生成するにはどうすればよいですか。使用したいのですgit log -p --no-names
が、特定のコミットハッシュを渡すためのスイッチが表示されません。別のgitコマンドを使用する必要がありますか?
git - マージコミットにマージされたコミットを確認するにはどうすればよいですか?
my-feature-branch
にマージされた場合my-main-branch
、どのコミットがからマージされたかを確認するにはどうすればよいmy-feature-branch
ですか?
git - git-parse-rev の相対リビジョン構文を使用して git-log にコミットを表示させる方法
git show-branch は、「dev~106^2~52」など、git-parse-rev で解析できる相対リビジョン式を使用してコミットを表示します。git-log から同じ出力を取得するにはどうすればよいですか?