問題タブ [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.
bash - ターミナルで長い出力をキャンセルするには?
端末コマンドまたは や のような git コマンドの長い出力を終了する方法git log
はgit branch -a
?
コマンドの出力が完了するまでエンターを押さなければならないことを回避するにはどうすればよいですか?
git - 「git log --follow」の方法" in JGit? (名前変更を含む完全な履歴を取得するには)
--follow
コマンドのオプションを機能させるには、次の logCommand をどのように拡張する必要がありますgit log
か?
このオプションは jGit で実装されていますが、使い方がわかりません。logCommand のメソッドは役に立たないようです。ありがとうございました!
git - git - ファイルが追加されたコミットを見つける
foo.js
少し前にコミットされたファイルがあるとします。このファイルが最初に追加されたコミットを簡単に見つけたいと思います。
答えと私自身のいじくり回しを読んだ後、これは私にとってうまくいきます
git - git-revert を使用してプッシュされたマージを元に戻すには、どのコミット ハッシュを使用しますか?
beta ブランチを master ブランチにマージしました。原点に押し込みました。私は今、マスターをローカルとリモートの両方で合併前の状態にしたいと考えています。
すでにプッシュされたマージを元に戻すための良い答えは、
これが実際に進むべき道である場合、どのようにcommit_hashを決定できますか? merge-baseによって返されたハッシュを試してみましたが失敗しました:
ブランチの git-log と gitk の両方のレンディションを調べましたが、それらは非常に長く、おそらくより大きな混乱を招く前に助けを求める必要があると感じるほど、解釈が不確かです。ベータ版は、マスターから派生した v2 から派生しました。新しいブランチを master で最新の状態に保つため、途中で master から v2 および beta へのマージがいくつかありました。beta から master への方向の合併は、私が訂正したい間違いでした。
マージ ポイントを決定したら、マージ後に master で行われたコミットが実際にはベータ ブランチにあるはずのコミットを見つけた場合、それらを移動する最善の方法は何ですか?
git - gitは、あるブランチと別のブランチの違いをログに記録します
AとBの2つのブランチがあります。
ビルドを実行するたびに、ブランチAはブランチBにマージされます。最後にビルドが実行されてから、Aで行われたすべての更新を電子メールで送信できるようにしたいと思います。git log
最後のA->Bマージ以降にAで行われたすべてのコミットをコピーできるようにするにはどうすればよいですか?
git - 単一ファイルの履歴 (git でホストされている) の「x」コミットの完全なファイル差分を表示する
git に というファイルがあり、そのファイルの最新バージョンの完全なコードを、変更された各セクションが強調表示された状態ですべて 1 か所でfilex.code
確認したいとします。そのため、 のコミット履歴は、ほとんどdiff を実行しているように見えますが、異なるブランチからマージするのではなく、履歴バージョンを表示しています。x
x
filex.code
x
大きいほどx
良い。クロスプラットフォームは素晴らしいですが、ビッグ 3 はどれも機能します。最新バージョンを編集できることも素晴らしいことですが、読み取り専用の視覚化で十分です。
これはファイルへのコミットの単純な履歴とは異なることに注意してください。そのため、それ以外の場合は素晴らしいgitk path/to/file
(または SourceTree または好きなビジュアル git クライアント) は、私が探しているものではありません。 git log -p
また、その出力には、私が望むすべての情報が興味をそそるほど含まれています。お気に入りの3ペインGUIのような、比較的非階層的で視覚的なものではなく、線形でほぼ「手続き型」の出力形式になっているだけです。 'd mergetool's.
(編集:各行の最新のソースと線形出力のみを表示するという欠点を最終的に経験するもう1つの本当にクールなオプションは ですがgit blame
、クールです。)
だから私はdifftoolのセットアップを正確に探しているわけではありません。x
ファイルの既知の 2 つのバージョンを比較するのではなく、過去の編集の反復を 1 つのファイルに視覚化したいと考えています。
求めすぎ?これは WTFA (「ファンタスティック」アプリ [自分で] を書く) の状況ですか?
より少ない選択肢: 1 つのファイルの最後の 3 つのコミットを表示するように騙すことができる 3 ペインのマージツールはありますか?
git - git log --follow filename はコミットがそのファイルを変更したことを示しません
ここで私は何をしましたか:
- マスターから開発ブランチを作成しました。
- いくつかのファイルを変更してコミットしました。
--no-commit
パラメータを使用して開発ブランチを master にマージしました。git reset --hard
開発ブランチで変更されたいくつかのファイルで実行します。結果として、マスター ブランチには開発ブランチからのいくつかのオブジェクトのみが含まれます。つまり、開発の変更を部分的にマージしました。- master に変更をコミットしました。
- しばらくして、マスター ブランチが他の開発者によって更新され、開発ブランチを更新するためにマスター ブランチをマージしました。
前回のマージで master にコミットしていない開発オブジェクトが、master からのファイルによって上書きされるという事実を受け入れる準備ができていました。しかし、の出力ではgit log --follow dev-modified-file.txt
、開発の変更を上書きしたコミットが表示されません。
git log --follow dev-modified-file.txt
私の開発ブランチで実行 すると、開発の変更を伴う必要なコミットが表示されます。しかし、その変更を元に戻すコミットを見ることはできません (実際にはそのようなコミットはありません) が、dev-modified-file.txt
開発コードを追加するコミットがあるにもかかわらず、私の作業ツリーにはファイルのマスター バージョンが含まれていますが、そのコードを削除するコミットはありません。
なんで?
そして、マスター ブランチのコードがどのようにして私の開発ブランチに忍び込み、痕跡を残さなかったのでしょうか?
PS私の説明が不明確な場合は、コメントで質問してください。この投稿を説明し、それに応じて修正します.
編集:マスターを開発にマージした後、マスターと開発ブランチの違いがわかりません(省略された変更はなくなりました!)そして、開発ブランチでそれを担当するコミットが表示されません!
戦略の統合に関係している可能性があると思います...しかし、どのように?ご覧のとおり、開発ブランチのログは次のようになります。
- ファイルに変更を追加しました — 作業フォルダー内のファイルにその変更が含まれています。
- マスター ブランチを開発ブランチにマージしました。多くのコミットが開発ブランチに送られ、編集したファイルはマスター ブランチで 1 つになりました。
マージ後にファイルに変更を追加したところ、変更が跡形もなく消えてしまいました!
git - git shortlog: "(cherry picked from commit ____)" を除外する方法は?
git shortlog
人間が読める変更の要約を作成するのに便利です。ただし、マスターブランチから変更をチェリーピックするときは、どのコミットからピックしたかを記録するため、-x
フラグを使用します。git cherry-pick
これにより、ショートログにいくつかの醜さが生じます。
git shortlog
これらのチェリーピック行 (実際のログの新しい行にあります) が不要であることを簡単に伝える方法はありますか?
もちろん、たとえば を使用してそれらを除外できることはわかっていgit shortlog Version-3.5.3..3.5 | sed 's/[(]cherry picked.*$//g'
ます。しかし、git は独自の注釈を認識し、それらを処理できるようにする必要があるようです。私が逃したものはありますか?
git - 初期化されていないローカルの空のリポジトリで「git add -A」を元に戻す方法 (ファイルをコンピューターに保持したまま)?
Git と Ruby on Rails の学習を始めたばかりで、Windows 7 マシンの cmd プロンプトから誤っgit add -A
てC:\Users\myusername
.
すべてのファイルが追加されましたが、Git でローカルに追跡されていません。明らかに、それらを削除したくありません。それらはすべて私のユーザー ファイルです。ただし、空のリポジトリであるため、追跡を解除して git をクリーンアップする方法が見つかりません。git status
およびgit log
応答は以下のとおりです。
git - git:ログと移動したファイルの変更を表示
gitにファイルがあり、その履歴を確認したい:変更されたときのコミットと、このコミット間で正確に何が変更されたか。
だが:
- 過去のgit履歴でファイルの名前を変更したことを知っています
- ディレクトリ間を移動した可能性もあります。
チェックしたいものをチェックする最も簡単な方法は何ですか?
PS私はこの質問について知っています:移動されたファイルのgit diff?、しかし、あなたが悪いメモリを持っていて、以前のすべてのファイル名を覚えていない場合、どうしたらよいか答えはありません。