指定git pull的目录(非当前目录)

5

我想要更新我的git仓库中的checkout,但不需要进入该目录:

-sh-3.2$ pwd
/var/lib/gitolite
-sh-3.2$ git clone repositories/visits.git/
Cloning into 'visits'...
done.
-sh-3.2$ cd visits/
-sh-3.2$ git remote -v
origin  /var/lib/gitolite/repositories/visits.git/ (fetch)
origin  /var/lib/gitolite/repositories/visits.git/ (push)
-sh-3.2$ cd
-sh-3.2$ git --git-dir=/var/lib/gitolite/repositories/visits.git/ --work-tree=/var/lib/gitolite/visits/ pull 
fatal: No remote repository specified.  Please, specify either a URL or a
remote name from which new revisions should be fetched.
-sh-3.2$ cd visits/
-sh-3.2$ git pull
Already up-to-date.
-sh-3.2$ git --version
git version 1.8.2.1
-sh-3.2$ 

我不太理解git-dirwork-tree,有人可以解释一下我的错误在哪里吗?

1个回答

8

git-dir 应该指向本地代码库中的 .git 文件夹(您所指向的是从远程仓库克隆的):

示例:

~/tmp> git clone repositories/my-project.git/
Cloning into 'my-project'...
done.
~/tmp> git --git-dir=/Users/jhoffmann/tmp/my-project/.git \
> --work-tree=/Users/jhoffmann/tmp/my-project/ pull
Already up-to-date.

Git版本1.8.5引入了-C,可以简化以下操作:

~/tmp> git -C /Users/jhoffmann/tmp/my-project/ pull
Already up-to-date.

(taken from this answer)


谢谢,我相信这正是缺失的)) - alexus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接