2
我們在git中有一個倉庫,其中項目包含在名爲Project的文件夾中。我們希望能夠通過克隆repo來將代碼發佈到生產服務器,而不包括「Project」文件夾,但是包含它下面的所有內容。這可能嗎?目標目錄名稱是/ var/www,它與項目中的任何內容無關。不幸的是,由於我們託管服務提供商的性質,我們不能只做一個符號鏈接(我們很快就會改變)。沒有包含頂級/父級文件夾的Git克隆
我們在git中有一個倉庫,其中項目包含在名爲Project的文件夾中。我們希望能夠通過克隆repo來將代碼發佈到生產服務器,而不包括「Project」文件夾,但是包含它下面的所有內容。這可能嗎?目標目錄名稱是/ var/www,它與項目中的任何內容無關。不幸的是,由於我們託管服務提供商的性質,我們不能只做一個符號鏈接(我們很快就會改變)。沒有包含頂級/父級文件夾的Git克隆
我的回答需要你有一個Git倉庫,其內容的假設如下:
/.gitignore
/Project
/Project/index.php
/ProjectB
/ProjectB/pom.xml
如果你不需要的歷史都在你的倉庫的副本,還有就是git archive
命令,可以做你想做的,除了其輸出將其數據tar
或zip
格式:
git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
[-o <file> | --output=<file>] [--worktree-attributes]
[--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
[<path>…]
像:
git archive --format=zip [email protected] master -- Project | unzip
但是,git clone命令不接受存儲庫路徑,我認爲它不是真的只想導出某個分支的樹視圖。您可能需要一個使項目成爲獨立git存儲庫的子模塊,或者像git archive
示例一樣,僅獲得您想要的但沒有版本控制(在生產服務器上可能存在問題)。
相反,你可以這樣做:
/opt/foobar
。/var/www
中創建/opt/foobar/Project
的符號鏈接。或在您的apache配置(避免符號鏈接)而不是簡單的/var/www
中引用/opt/foobar/Project
。
只是嘗試'git clone Project/var/www'' – 2014-09-02 21:31:41
我不想在克隆過程中包含Project文件夾。而不是/var/www/Project/index.html我寧願將/var/www/index.html – StackOverflowed 2014-09-02 21:34:33
cd放到你的Project文件夾中,運行'git init','git add .','git commit -a'和然後將其克隆到您的生產服務器。這會實現你想要的嗎? – genisage 2014-09-02 21:51:17