問題タブ [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ログを見て、サイトの一部がいつ公開されたかを正確に調べようとしています。
私のセットアップは次のようになります:
-開発、テスト、変更のコミットを行っているローカルgitリポジトリがあります-
サーバー上のリポジトリに変更をプッシュします
-変更に満足したら、2番目のリポジトリにプルします変更をライブにする同じサーバー。
だから私は変更を加えますgit commit
、、git push
。次に、WebサーバーにSSH接続しgit pull
てデプロイします。
を使用するgit log
と、いつコミットしたかはわかりますが、いつ行ったかを判断する方法がわかりませんgit pull
。これは可能ですか?
git - 事前にフィルタリングされた履歴のサブセットに対する git log
git log を使用して、自分でフィルター処理したコミット間の一連の差分を表示したいと思います。git log には内部履歴フィルタリング機能があり、( --patch フラグと共に使用すると) 履歴内で大きく離れている可能性のあるコミット間の差分が表示されます。しかし、それを --stdin と組み合わせてコミットのリストを渡そうとすると、これらのコミットの完全な履歴 (実際には、それらが存在するブランチの完全な履歴) が取得されます。-1 を追加しても、目的の動作に近づくことはできません。コミットの合計が 1 つに制限されるだけです。
これのよりクリーンなバージョンを探しています (過去数週間に発生したすべてのコミットの毎日の差分):
git - サブモジュールの変更されたすべてのファイルのリストを git で取得するにはどうすればよいですか?
定期的に更新される多くのサブモジュールを含むスーパー リポジトリがあります。このスーパー リポジトリには、コミットのたびにメンテナンスを行う post-receive フックのセットアップがあります。
サブモジュールが更新された後に変更されたファイルを含む、コミットで変更されたすべてのファイルのリストを取得しようとしています。
サブモジュールのないレポに対して行う方法は次のとおりです。
git show --pretty="format:" --name-only HEAD | tr '\n' ' '
...これtesting1.html testing2.html foo.md bar.js
は、目的の形式(スペース区切りのファイル名)である のようなものを出力します。
私の質問は、サブモジュールで変更されたファイルを含む、単一のコミットに対して変更されたすべてのファイルのリストを取得するにはどうすればよいですか?
git - Git: ファイルの特定のセクションに加えられた変更を調べる方法はありますか?
使用事例:
まったく理解できないコードを見つけました。このコードが書かれた時間的な文脈と、コードのこの部分が受けたすべての変更を見つけたいと思っています。
基本的に、このファイルの履歴を検索しますが、その履歴の [行 34 から 38 (例として)] と交差する部分のみを検索します。
git log -p <file> | grep <some snippet matching mysterious code>
出力に戻ってlog -p
差分のコンテキストを確認するよりも使いやすいコマンドはありますか。
悲しいことに、私が書いたコードをレビューするときに、この種の機能が必要であることに気付くことがよくあります。
git-log - git log -m --patch を使用するときに、対応する親コミット ハッシュを出力する方法
git log を使用する場合
マージ コミットの場合、次のように、各親コミットの差分を生成し、対応する親コミット ハッシュを指定します。
しかし、解析には便利ではありません。
%P をきれいな形式で使用すると、次のように、2 つの親が同時にハッシュをコミットするようになります。
どちらがパッチなのか見分けがつきません。pretty フォーマットを使用する場合、対応する親コミット ハッシュを取得するにはどうすればよいですか?
ありがとう
git - Git リポジトリの最後のコミットを取得する
中央の Git ベア リポジトリがあります。そのレポにプッシュが行われたときに、受信後フックを実行したいと思います。そのフックが行うことは、Basecamp プロジェクトで (API を使用して) メッセージを作成することです。実行したばかりの更新に関する情報が必要です。現時点でgit log -2 --stat
は十分だと思いますが、もう少し情報が必要です (ブランチが更新され、ファイルが作成され、ファイルが削除されました)。すべての情報を取得するために必要なコマンドを誰かが手伝ってくれますか? 複数のコマンドを実行しても問題ありません。おそらく、すべての情報を取得できる単一のコマンドはありません。
web-services - 「git log」を有効にするための個人用 Git サーバーリポジトリ用の Web API (github REST API など)?
おそらく、自分のレポ サーバー用にgithub REST APIの一部を再発明することになるでしょう。しかし、それを行うためのサーバー スクリプトが既に存在するのではないでしょうか? または、他の提案がありますか?
これは私のユースケースです:
のデータを表示する Firefox 拡張機能を開発しています。
十分に開発されたJGitを実装し、そこで「git log」コマンドを実行する小さなサーバー スクリプトをいつでも作成できます。ただし、FF 拡張機能はそのサーバー スクリプトに依存します ;(
私の小さなサーバースクリプトとしてより標準的な「not-github」リポジトリ用のgithub REST APIのようなものが存在するかどうか疑問に思っていましたか?
また、 Git.JSのようなGit JS Clientについても考えました(どうやら唯一の JS Client; node.js で動作します; 残念ながら、このプロジェクトはもはやアクティブではなく、ドキュメントもありません。) . ただし、完全なクライアントは必要ありません。リモートマスターリポジトリから読み取り専用の情報を取得したいだけです。
git - gitwebとgit-logの日付
私は現在、当社のgitサーバーからのリポジトリのローカルクローンを持っています。私が気付いたのは、によって返される履歴の概要で返されるgit log
日付が、gitwebサーバービューの日付と一致しないことです。
これらのそれぞれがどのように日付を取得するのか、そしておそらくなぜそれらが異なるのかを誰かが説明できますか?
日付が異なると、変更の追跡が非常に複雑になります。
git - Gitとバイナリファイルの履歴
これは、バイナリファイルを処理するgitに関するいくつかの同様の「回答済み」の質問のフォローアップであり、 gitがファイル履歴をうまく追跡できない方法です。
そのため、gitはファイル履歴を適切に追跡できません。ええと、それさえgit log --follow -M100% --name-only -- path-to-my-file
しません、そして私はおそらく100%類似しているファイルだけに従うようにそれを言っています!
次に、二等分など、他の方法を使用して誰のせいにするかを見つけることになっています。ここでの問題は、バイナリでは機能しないようです。そして、Linusによれば、すぐに完全に機能するようになる可能性は低いです。git log --follow
最後に、ここでの私の質問は:
git log
名前が変更された/移動されたバイナリを追跡できるようにする自動化された方法はありますか?
または、同様のバージョン管理システムがありますが、この機能を備えていますか?
ある種の解決策の例として、私はいくつかの安全で簡単な使用filter-branch
方法を受け入れますが、私はそれをいじることはなく、それがどれほど危険であるかわかりませんでした。そのような手順を発行した後、問題なくプルおよびプッシュできるでしょうか?簡単に元に戻すことはできますか?元に戻さずに古い名前/参照を追跡できますか?バージョニングシステムでは、履歴へのアクセスがすべてです。