English ▾ 主題 ▾ 最新版本 ▾ git-upload-archive 最後更新於 2.39.0

名稱

git-upload-archive - 將封存檔傳回給 git-archive

概要

git upload-archive <repository>

描述

git archive --remote 呼叫,並透過 Git 通訊協定將產生的封存檔傳送到另一端。

此指令通常不會由終端使用者直接呼叫。該通訊協定的使用者介面位於 git archive 端,這對程式旨在用於從遠端儲存庫取得封存檔。

安全性

為了保護已從歷史紀錄中移除但尚未被清理(pruned)的物件隱私,git-upload-archive 會避免提供無法從儲存庫參考(refs)存取的提交(commits)與樹狀物件(trees)封存檔。然而,由於計算物件的可存取性在運算上相當耗時,git-upload-archive 實作了一套更嚴格但更容易檢查的規則:

  1. 用戶端可以請求由參考直接指向的提交或樹狀物件。例如:git archive --remote=origin v1.0

  2. 用戶端可以使用 ref:path 語法請求提交或樹狀物件內的子樹。例如:git archive --remote=origin v1.0:Documentation

  3. 用戶端不得使用其他 SHA-1 表達式,即使最終結果是可存取的也不行。例如:即使結果可從參考中存取,也不允許使用像 master^ 這樣的相對提交,或是像 abcd1234 這樣的字面 SHA-1。

請注意,規則 3 不允許許多不涉及隱私問題的情況。這些規則在 Git 的未來版本中可能會有所更動,且透過 git archive --remote 存取的伺服器可能會也可能不會完全遵守這些規則。

如果設定選項 uploadArchive.allowUnreachable 為 true,則會忽略這些規則,且用戶端可以使用任意的 SHA-1 表達式。如果您不在意不可存取物件的隱私,或者您的物件資料庫已經透過非智慧型 HTTP (non-smart-http) 公開供存取,這會很有用。

選項

<repository>

要從中取得 tar 封存檔的儲存庫。

GIT

git[1] 套件的一部分