如何在不更改当前工作目录的情况下git添加文件?

时间:2012-03-21 01:21:38

标签: git

我想在git中添加和提交文件而不更改我当前的工作目录。这可能吗?

> pwd
/tmp 

> git --git-dir=/tmp/git_test/.git init
Initialized empty Git repository in /tmp/git_test/.git/

> ls /tmp/git_test
commit1

> git --git-dir=/tmp/git_test/.git add /tmp/git_test/commit1
fatal: '/tmp/git_test/commit1' is outside repository

> git --git-dir=/tmp/git_test/.git add commit1
fatal: pathspec 'commit1' did not match any files

(git add -A似乎使用当前的工作目录,而不是--git-dir的参数)

1 个答案:

答案 0 :(得分:12)

您错过了一个选项:--work-tree。如果您在存储库之外,则需要同时提供它和--git-dir

  

--work-tree=<path>

     

设置工作树的路径。它可以是绝对路径或相对于当前工作目录的路径。这也可以通过设置GIT_WORK_TREE环境变量和core.worktree配置变量来控制(有关更详细的讨论,请参阅git-config(1)中的core.worktree)。