[英]Obtain a git repository's tree elsewhere via --work-tree while keeping --git-dir repository unmodified
在/orig-git
命令下給出一個檢出的存儲庫
git --git-dir=/orig-git/.git --work-tree=/copy checkout -f REV
導致/copy/
中的簽出樹表示REV
的狀態,但也修改/orig-git
存儲庫以指向REV
(同時保持文件本身不變)。 是否可以在/copy
獲取修訂版REV
的/copy
但不通過clone,fetch或只是簡單地復制此.git存儲庫來復制/orig-git/.git
的信息?
基本上我想做一個關於git repo信息的只讀操作,但仍然在別處修改/寫出checkout out樹。
看起來最簡單的選擇就是克隆存儲庫:
git clone -l /orig/git /copy
現在您擁有了一個可以根據需要修改的存儲庫副本,而不會影響原始存儲庫。 如果你真的想用/copy
的更改來更新原始/copy
,那么如果/orig
配置正確,你可以git push
它們git push
回去。
如果您擔心擁有存儲庫的第二個副本所使用的空間,則-l
標志意味着盡可能“.git / objects /目錄下的文件被硬鏈接以在可能的情況下節省空間”(來自git-clone(1)
)。
直接從git-archive
git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)
創建一個tar存檔,其中包含當前分支上最新提交的內容,並將其解壓縮到
/var/tmp/junk
目錄中。
只需將HEAD
替換為您感興趣的提交( REV
)即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.