【问题标题】:How can I git add a file without changing the current working directory?如何在不更改当前工作目录的情况下 git 添加文件?
【发布时间】:2012-04-05 13:04:42
【问题描述】:

我想在不更改当前工作目录的情况下在 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 的参数)

【问题讨论】:

  • 它可能是“作弊”,但运行(cd /tmp/git-test; git add commit1) 会将您的外壳程序留在与生成运行(...) 中所有内容的子shell 之前相同的目录中。
  • 在 Stack Overflow 上的其他地方回答:stackoverflow.com/questions/1386291/…

标签: git


【解决方案1】:

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

--work-tree=<path>

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

【讨论】:

  • 谢谢!这正是我想要的。
  • 如果这是正确答案,请给@Jefromi 打分,并将其标记(“检查”)为正确答案。
  • @FlakDiNenno 教育新用户固然好,但是这个问题两年了,一年半没看到OP了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-02
  • 2015-02-22
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 2019-01-20
相关资源
最近更新 更多