?
This document uses PHP Chinese website manual Release
git-send-pack - 將對象通過 Git 協(xié)議推送到另一個存儲庫
git send-pack [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [--[no-]signed|--sign=(true|false|if-asked)] [<host>:]<directory> [<ref>…]
通常你會想要使用git push
這個命令的高級包裝,而不是這個。見git-push [1]。
調(diào)用git-receive-pack
可能是遠程的存儲庫,并從當前的存儲庫更新它,發(fā)送名為 refs。
--receive-pack=<git-receive-pack>
git-receive-pack
遠程端程序的路徑。通過 ssh 推送到遠程存儲庫時有用,而且您沒有默認$ PATH 目錄中的程序。
--exec=<git-receive-pack>
與--receive-pack = <git-receive-pack>相同。
--all
而不是明確指定要更新哪些參考,更新所有本地存在的頭。
--stdin
從 stdin 中獲取參考列表,每行一個。如果除了此選項外,還在命令行中指定了引用,則 stdin 中的引用將在命令行中的引用之后進行處理。
如果--stateless-rpc
與此選項一起指定,則參考列表必須采用數(shù)據(jù)包格式(pkt-line)。每個 ref 必須位于一個單獨的數(shù)據(jù)包中,并且該列表必須以 flush 數(shù)據(jù)包結尾。
--dry-run
除了實際發(fā)送更新之外,請做其他事
--force
通常,該命令拒絕更新遠程 ref,該遠程 ref 不是用于覆蓋它的本地 ref 的祖先。此標志禁用檢查。這意味著遠程倉庫可能會失去提交; 小心使用它。
--verbose
詳細地運行。
--thin
發(fā)送一個“精簡”包,該包根據(jù)包中未包含的對象以分辨形式記錄對象,以減少網(wǎng)絡流量。
--atomic
使用原子事務來更新參考。如果任何一個 ref 沒有更新,那么整個 push 將會失敗而不改變?nèi)魏?refs。
--no-signed --sign=(true|false|if-asked)
GPG-信號 推送請求以更新接收端的 refs,以便通過鉤子檢查和/或記錄。如果false
或者--no-signed
,不會嘗試簽名。如果true
或者--signed
,如果服務器不支持簽名推送,推送將失敗。如果設置為if-asked
,則當且僅當服務器支持簽名推送時簽名。如果實際的調(diào)用gpg --sign
失敗,推送也會失敗。有關接收端的詳細信息,請參閱 git-receive-pack [1]。
--push-option=<string>
將指定的字符串作為推送選項傳遞給服務器端的掛鉤使用。如果服務器不支持推送選項,則出錯。有關詳細信息,請參閱 git-push [1]和 githooks [5]。
<host>
一個遠程主機來存放版本庫。當這部分被指定時,通過ssh調(diào)用git-receive-pack
。
<directory>
要更新的存儲庫。
<ref>…
遠程參考更新。
有三種方法可以指定在遠程端更新哪些參考。
使用--all
標志,本地存在的所有參考將轉移到遠程方。如果您使用此標志,則不能指定任何<ref>
內(nèi)容。
如果沒有--all
和沒有<ref>
,本地和遠端存在的頭都會更新。
當明確指定一個或多個<ref>
(無論是在命令行還是通過--stdin
)時,它可以是單個模式,也可以是由冒號“:”分隔的一對這樣的模式(這意味著 ref 名稱不能包含冒號它)。一個模式<name>
只是一個<name>:<name>
簡寫。
每個模式對由源端(冒號前)和目標端(冒號后)組成。要推送的引用是通過找到匹配源端的匹配來確定的,并且推送的位置由目標端確定。用于匹配 ref 的規(guī)則與用于git rev-parse
解析符號 ref 名稱的規(guī)則相同。參見 git-rev-parse [1]。
如果<src>不完全匹配一個本地引用,那是錯誤的。
如果<dst>匹配多個遠程引用,那是錯誤的。
如果<dst>與任何遠程參考不匹配
- it has to start with "refs/"; <dst> is used as the destination literally in this case.
- <src> == <dst> and the ref that matched the <src> must not exist in the set of remote refs; the ref matched <src> locally is used as the name of the destination.
如果沒有--force
,<src> ref僅在<dst>不存在的情況下存儲在遠程,或者<dst>是<src>的真子集(即祖先)。此檢查稱為“快進檢查”,以避免意外覆蓋遠程參考并丟失其他人的提交。
與此同時--force
,所有裁判都禁用快進檢查。
可選地,一個<ref>參數(shù)可以帶有加+
號前綴以禁用僅在該 ref 上的快進檢查。