2012-09-18 86 views
3

在Git中,你可以克隆一個給定的目錄來定目錄:的Git拉在「遠程」目錄

git clone ssh://[email protected]:3687/com/bipper/kids/portal <dir> 

與當我運行我們的構建腳本之一,我想「CD」命令的一些複雜問題的原因採取混帳拉這樣的事情:

git pull <dir-to-the-git-folder> 

人體工程學沒有執行拉時要在git的文件夾(或取/合併),這樣做的時候,是有可能實現某種方式(我上面的例子中沒有按」 t工作)

+0

+1,有趣的問題。 – greg0ire

回答

3

我想你應該看看git-dir,也許還有work-tree選項。如果您願意,您也可以使用GIT_DIR/GIT_WORK_TREE變量。

參見手冊:

--git-dir=<path> 路徑設置爲存儲庫。這也可以通過設置GIT_DIR環境變量來控制。它可以是當前工作目錄的絕對路徑或相對路徑。

-work-tree=<path> 設置工作樹的路徑。它可以是相對於當前工作目錄的絕對路徑或路徑。這也可以通過設置GIT_WORK_TREE環境變量和core.worktree配置變量來控制(有關更詳細的討論,請參閱git-config(1)中的core.worktree)。

+0

嗯,順便說一句,想這是我們的Linux服務器上 混帳--git-DIR =/tmp目錄/ deployment_1347960691855 - 共同努力樹=的/ tmp/deployment_1347960691855拉 但得到 警告:致命的:不是git倉庫: '/ tmp目錄/ deployment_1347960691855' 但它是一個Git回購 –

+0

當地也試過我的Windows機器上與其他Git項目,我有: C:\> git的--git-DIR = C:\ projectsGit \ bsafe- server --work-tree = C:\ projectsGit \ bsafe-server pull fatal:不是git倉庫:'C:\ projectsGit \ bsafe-server' –

+1

也許你應該試試'C:\ projectsGit \ basfe-server \。 git'爲git-dir選項...看到這個問題:http:// stackoverflow。com/questions/1386291/git-git-dir-not-working-as-expected雖然... – greg0ire

1

嘗試

GIT_DIR=<dir-to-the-git-folder>/.git GIT_WORK_TREE=<dir-to-the-git-folder> git pull 

您也可以分別以--git-dir--work-tree指定這些選項。

man git

--git-dir=<path> 
     Set the path to the repository. This can also be controlled by setting the GIT_DIR environment 
     variable. It can be an absolute path or relative path to current working directory. 

    --work-tree=<path> 
     Set the path to the working tree. It can be an absolute path or a path relative to the current 
     working directory. This can also be controlled by setting the GIT_WORK_TREE environment variable 
     and the core.worktree configuration variable (see core.worktree in git-config(1) for a more 
     detailed discussion). 
1

正如吉特的1.8.5可以使用-C選項更改目錄上下文。

sudo -u www-data -H git -C /var/www/ status 

-H將爲您的命令設置home-dir。它是可選的,但有用的,當你想避免以下錯誤:

warning: unable to access '/root/.config/git/attributes': Permission denied 
or 
warning: unable to access '/home/user/.config/git/attributes': Permission denied