問題タブ [git-hash]
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 チェンジセットを TFS に保存されたワークアイテムにリンクする機能を (今のところ) 保持したいと思います。
Git チェンジセットのメッセージに作業項目識別子を挿入できるツールを (Git のフックを使用して) 既に作成しました。
また、Git コミットのハッシュをカスタム TFS ワークアイテム フィールドに保存したいと考えています。このようにして、TFS でワークアイテムを調べ、どの Git 変更セットがワークアイテムに関連付けられているかを確認できます。
Git から現在のコミットからハッシュを簡単に取得するにはどうすればよいですか?
git - Git コミットが Merge/Revert コミットかどうかを判断する
特定のコミットが Merge/Revert コミットであるかどうかを確認する必要があるスクリプトを書いていますが、そのための git トリックがあるかどうか疑問に思っています。
これまでに思いついたのは (そして、ここでコミット メッセージに依存したくないことは間違いありません) HASH^2
、エラーが発生しないかどうかを確認することです。より良い方法はありますか?
git - Gitはファイルハッシュをどのように計算しますか?
ツリーオブジェクトに格納されているSHA1ハッシュ(によって返されるgit ls-tree
)が、ファイルコンテンツのSHA1ハッシュ(によって返される)と一致しませんsha1sum
。
Gitはファイルハッシュをどのように計算しますか?ハッシュを計算する前にコンテンツを圧縮しますか?
python - Pythonスクリプトで現在のgitハッシュを取得する
Pythonスクリプトの出力に現在のgitハッシュを含めたいと思います(その出力を生成したコードのバージョン番号として)。
Pythonスクリプトで現在のgitハッシュにアクセスするにはどうすればよいですか?
git - Git はどのように一意のコミット ハッシュ (主に最初の数文字) を作成しますか?
最初の 4 文字であっても同じであってはならない完全に一意のハッシュを Git がどのように作成するかについて頭を悩ませるのは難しいと思います。最初の 4 文字だけを使用して、Git Bash でコミットを呼び出すことができます。最初の文字が「超」一意であり、他の同様のハッシュと競合しないことがアルゴリズムで明確に決定されていますか、それともアルゴリズムはハッシュのすべての部分を同じ方法で生成しますか?
git - git commit ハッシュは信頼できますか?
未知のサード パーティのコードを github で使用する場合、システムのセキュリティを危険にさらす可能性のある明らかなバックドアが存在しないことを常に確認します。
私がレビューしているリポジトリの特定の状態は、おそらく git タグとコミット ハッシュにバインドされています。ご存知のように、git タグの内容は簡単に変更できます。したがって、ソース コードを再度ダウンロードし、バージョン タグに基づいて信頼することは、確実に安全ではありません。
私の質問は: ソース コードを新たにダウンロードするとき、完全なコミット ハッシュに基づいて特定のコミットをチェックアウトした場合、これが以前にレビューしたコードと 100% 同一であると信頼できますか?
この質問の焦点は、sha1 衝突が発生する可能性にまったくありません (特定の sha1 ハッシュを計算するよりも衝突を計算する方がはるかに簡単であるため、現時点ではほとんど不可能である可能性があります)。すべてのファイルはこの sha1 サムの一部であるため、変更は常に異なるハッシュをトリガーします。
git - git push - コミット ハッシュはどこにありますか - 履歴 MIRROR リポジトリに git ログが表示されません
GIT リポジトリ (最新) からクローンを作成しました。この時点で、リポジトリ内の最新のコミットは次のとおりです。a10cb09
次のコマンドを使用してクローンを作成しました (ここで、変数r
= 渡された最初のパラメーター (レポ名 aka 用ansible
) を小さなラッパー スクリプトに設定します)。
いくつかの変更を加え、次の簡単な手順を実行しました: (つまり、変更を行い、ファイル/フォルダーを追加し、コミットしてプッシュします)、新しいコミット ハッシュa08c263
(短い) を取得しました。
最新の変更を確認するために Github リポジトリに行くと、そこにはありません。git log
コミットも表示されません(代わりに、コミット前に一番上にあったコミットハッシュが表示されます)。私は何を取りこぼしたか?
git rev-parse a08c263
(小さなハッシュ)を使用した長いハッシュすら見えないようです。
と
PS:レポグループの下にある他のリポジトリに対して同じ手順を実行するmycompany
と、それらのすべてのレポは、同様の手順に従うと、githubでコミット/プッシュの変更を正常に取得します。
更新:私のブラウザ ページの 1 つがまだ開いていました。コミット+プッシュを行った後、コミットされた変更を確認できました(a08c263
トップレポレベルでの最新のコミットとしての新しいハッシュ)。それをクリックすると、この添付されたブラウザ ページが開き、FULL ハッシュとフォルダ/ファイルが表示されます。コミットのために開いたブラウザー URL にアクセスすると、それはまだそこにあります (Git は何かを保存しました) が、リポジトリのルート レベルに戻ります。つまりansible
、最新のコミットは私のコミット + プッシュ (新しいハッシュ) ではありませんがa10cb09
、最新のものとしてリストされています1つ(スナップショットごとに、新しく生成されたハッシュの親ハッシュです)。ここを参照してください:
これにより、主な質問がもたらされます。
このブラウザ ページをまだ開いていなかった場合、どのようにして長いハッシュとフォルダ/ファイル (コンテンツ) を取得できたのでしょうか?
Phabricator で実際にホストされている ansible リポジトリの MIRROR である github.com/mycompany/ansible (リポジトリ) からクローンを作成した場合 (実際の元のリポジトリ クローンの URL は、上記の小さなスクリプトで使用したものとは異なります)、では、新しい変更を元の Phabricator
ansible
リポジトリにプッシュするには、どのコマンド/オプションを使用すればよいでしょうか?コミット+プッシュが最後に完了した場合
git log
、他の同様のgit
コマンドが新しいハッシュに対して情報を表示しないのはなぜですか?