亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
Guides gitattributes giteveryday gitglossary gitignore gitmodules gitrevisions gittutorial gitworkflows Administration git archive git bundle git clean git filter-branch git fsck git gc git instaweb git reflog Basic Snapshotting git add git commit git diff git mv git reset git rm git status Branching and Merging git branch git checkout git log git merge git mergetool git stash git tag Debugging git bisect git blame git grep Email git am git format-patch git request-pull git send-email External Systems git fast-import git svn Getting and Creating Projects git clone git init Git git annotate git archimport git bisect-lk2009 git check-attr git check-mailmap git check-ref-format git checkout-index git cherry git citool git column git credential git credential-cache git credential-store git cvsexportcommit git cvsimport git cvsserver git diff-files git diff-tree git difftool git fast-export git fetch-pack git fmt-merge-msg git get-tar-commit-id git gui git http-backend git http-fetch git http-push git imap-send git index-pack git interpret-trailers git ls-remote git ls-tree git mailinfo git mailsplit git merge-file git merge-index git merge-one-file git merge-tree git mktag git mktree git name-rev git notes git p4 git pack-objects git pack-redundant git pack-refs git parse-remote git patch-id git prune git prune-packed git quiltimport git receive-pack git remote-ext git remote-fd git remote-testgit git repack git replace git rerere git send-pack git sh-i18n git sh-setup git shell git show-branch git show-index git stripspace git unpack-file git unpack-objects git upload-archive git upload-pack git var git verify-commit git verify-tag git whatchanged git worktree Inspection and Comparison git describe git shortlog git show Miscellaneous api credentials api index gitcli gitcore tutorial gitcredentials gitcvs migration gitdiffcore githooks gitk gitnamespaces gitremote helpers gitrepository layout gitsubmodules gittutorial 2 gitweb gitweb.conf pack format User Manual Patching git apply git cherry-pick git rebase git revert Plumbing Commands git cat-file git check-ignore git commit-tree git count-objects git diff-index git for-each-ref git hash-object git ls-files git merge-base git read-tree git rev-list git rev-parse git show-ref git symbolic-ref git update-index git update-ref git verify-pack git write-tree Server Admin git daemon git update-server-info Setup and Config git git config git help Sharing and Updating Projects git fetch git pull git push git remote git submodule
characters

命名

gitnamespaces  -  Git 命名空間

概要

GIT_NAMESPACE=<namespace> git upload-pack
GIT_NAMESPACE=<namespace> git receive-pack

描述

Git 支持將單個存儲庫的引用劃分為多個名稱空間,每個名稱空間都有自己的分支,標(biāo)簽和 HEAD 。Git 可以將每個名稱空間公開為一個獨立的存儲庫,以便在共享對象存儲的同時從其中抽取和推送,并將所有參考文獻(xiàn)公開給 git-gc [1] 等操作。

將多個存儲庫作為單個存儲庫的名稱空間存儲可避免存儲相同對象的重復(fù)副本,例如存儲同一個源的多個分支時。alternates 機(jī)制提供了類似的支持以避免重復(fù),但是替代方法并不能防止添加到存儲庫的新對象之間的重復(fù),而無需進(jìn)行持續(xù)維護(hù),而名稱空間則可以。

要指定名稱空間,請將GIT_NAMESPACE環(huán)境變量設(shè)置為名稱空間。對于每個 ref 命名空間,Git 將相應(yīng)的 ref 存儲在一個目錄下refs/namespaces/。例如,GIT_NAMESPACE=foo將存儲參考下refs/namespaces/foo/。你也可以通過--namespace git [1] 選項指定命名空間。

請注意,包含/的命名空間將擴(kuò)展到命名空間的層次結(jié)構(gòu); 例如,GIT_NAMESPACE=foo/bar將存儲參考下refs/namespaces/foo/refs/namespaces/bar/。這使GIT_NAMESPACE的路徑的行為具有層次性,因此使用克隆技術(shù)可以GIT_NAMESPACE=foo/bar產(chǎn)生與GIT_NAMESPACE=foo從該回購庫克隆和克隆相同的結(jié)果GIT_NAMESPACE=bar。它還避免了奇怪的命名空間路徑的歧義,例如foo/refs/heads/可能會在refs目錄內(nèi)產(chǎn)生目錄/文件沖突。

git-upload-pack [1] 和 git-receive-pack [1] 按照指定的方式重寫 refs 的名字GIT_NAMESPACE。git-upload-pack 和 git-receive-pack 會忽略指定命名空間之外的所有引用。

智能 HTTP 服務(wù)器 git-http-backend [1] 會將 GIT_NAMESPACE 傳遞給后端程序; 有關(guān)示例配置,請參閱 git-http-backend [1] 以將存儲庫名稱空間公開為存儲庫。

對于簡單的本地測試,您可以使用 git-remote-ext [1] :

git clone ext::'git --namespace=foo %s /tmp/prefixed.git'

安全

獲取和推送協(xié)議并不旨在防止一方從另一個不想共享的存儲庫中竊取數(shù)據(jù)。如果您需要保護(hù)私密數(shù)據(jù)免受惡意對等攻擊,則最佳選擇是將其存儲在另一個存儲庫中。這適用于客戶端和服務(wù)器。特別是,服務(wù)器上的名稱空間對讀取訪問控制無效; 您應(yīng)該只向授予讀取權(quán)限的客戶端授予對整個存儲庫的讀取訪問權(quán)限。

已知的攻擊媒介如下:

1. victim 發(fā)送 “have” 線廣告其具有的對象的 ID,這些對象的 ID 沒有明確地意圖共享,但是如果對等方也擁有它們,則可用于優(yōu)化傳送。攻擊者選擇一個對象 ID X 來竊取并向X發(fā)送一個 ref,但不需要發(fā)送 X 的內(nèi)容,因為受害者已經(jīng)擁有了它?,F(xiàn)在受害者認(rèn)為攻擊者擁有 X ,并且稍后將X的內(nèi)容發(fā)送回攻擊者。(這種攻擊對于客戶端來說在服務(wù)器上執(zhí)行起來是最直接的,通過在客戶端有權(quán)訪問的命名空間中創(chuàng)建對 X 的引用,然后獲取它,服務(wù)器在客戶端上執(zhí)行它的最可能方式是“合并“ X 到一個公共分支,并希望用戶在這個分支上做額外的工作,并將其推回服務(wù)器而不會注意到合并。)

2. 和#1一樣,攻擊者選擇一個對象 ID X 來竊取。被攻擊者發(fā)送給攻擊者已經(jīng)擁有的對象 Y,并且攻擊者錯誤地聲稱具有 X 而不是 Y ,所以被攻擊者發(fā)送 Y 作為與 X 相對的三角點。該三角點揭示 X 與攻擊者類似的 X 的區(qū)域。

Previous article: Next article: