[解決済み] Git は、省略形のコミット ID が 2 つの異なるコミットを参照する場合に警告を発しますか?
質問
もし
cee157
のように、2 つの異なるコミット ID を参照することができます。
cee157eb799af829a9a0c42c0915f55cd29818d4
と
cee1577fecf6fc5369a80bd6e926ac5f864a754b
を入力すると、Git は警告を発します。
git log cee157
? (あるいはGit 1.8.5.2 (Apple Git-48)で
git log cee1
).
私はそうすべきだと思いますが、そうなるという権威あるソースは見当たりません。
どのように解決するのですか?
このように表示されるはずです。
$ git log cee157
error: short SHA1 cee157 is ambiguous.
error: short SHA1 cee157 is ambiguous.
fatal: ambiguous argument 'cee157': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
実際の Git リポジトリで、このように接頭辞が重複しているコミットを見つけてテストしてみました。
git rev-list master | cut -c-4 | sort | uniq -c | sort -nr | head
これは、リビジョンのリストを
master
にあるリビジョンのリストを取り、最初の4文字をカットして残りを捨て、重複をカウントし、数値でソートします。私の比較的小さなリポジトリ(約1500コミット)で、共通の4桁の接頭辞を持つリビジョンがかなり見つかりました。4 桁のプレフィックスを選んだのは、Git がサポートする最も短い法定長のようだからです。(3桁以下では、たとえ曖昧でないとしてもうまくいきません)。
これはタイプミスではなく、重複するSHA1の数に関係なく、曖昧なSHA1に関するエラーメッセージが2回表示される理由がわかりません(2、3で試してみました)。
error: short SHA1 cee157 is ambiguous.
error: short SHA1 cee157 is ambiguous.
(ともに
stderr
. 実際には、出力全体が
stderr
にあり、何も
stdout
.)
Windowsでテストしました。
$ git --version
git version 1.8.1.msysgit.1
バージョンが >= 1.8.1 ならば、Git は安全だと思います。 は が重複を警告します。(もっと古いバージョンでもこのように動作していたと思われます。
アップデイト
これをテストする場合、最低でも4桁のSHA1が必要で、その理由は
int minimum_abbrev = 4
で
環境.c
. (ありがとうございます
デブナル
の指摘に感謝します!)
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Gitを使って最後のXコミットをまとめる
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】Git リポジトリに空のディレクトリを追加するには?
-
[解決済み】Gitでコミットをチェリーピックするというのはどういう意味ですか?
-
[解決済み] GitHubの特定のブランチにあるコードを検索する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[git push] 解決策: ! [リモート拒否] master -> master (受信前のフックは拒否されました)
-
undefinedmaster -> master (non-fast-forward) と git ! [拒否] master -> master (フェッチファースト)
-
git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。
-
Note: Git prompts このリポジトリで別の git プロセスが実行されているようです ....
-
Git学習まとめ(2)コミットには何も追加されていないが、未追跡のファイルは存在する
-
[Gitラーニングノート】Gitのコンフリクト:マージする前に変更をコミットするかstashする。
-
git push issues
-
[解決済み] git mergeの詳細について教えてください。
-
[解決済み] Git rebase が失敗しました。「次のファイルに対するローカルの変更はマージによって上書きされます。ローカルでの変更はないのですか?
-
[解決済み] gitで非リポジトリのファイルを削除する?