【问题标题】:Run `git commit` from another directory从另一个目录运行 `git commit`
【发布时间】:2014-05-06 15:50:40
【问题描述】:

如何从另一个目录运行git commit -m '...' 命令?

我编辑我的文件:

vim /home/.../myFile

我添加它使用:

git add /home/.../myFile

但是现在,我该如何提交更改?

git commit -m '...' ???

【问题讨论】:

标签: git


【解决方案1】:

您可以使用git -C <path>。 来自https://git-scm.com/docs/git/2.4.4

git -C : 就像 git 在 而不是当前工作目录中启动一样运行。

【讨论】:

  • 对于 git commit 不正确。来自帮助:-C, --reuse-message
  • 确实如此!实际上,-C, --reuse-message <commit>git commit-C 选项。但是在那里,我们使用git-C 选项。换句话说:git -C <path> commit ... git commit -C <commit> ... 不同。
  • 评论有误。你可以运行git -C commit <options>,例如我刚刚运行:git -C syncedConfigs/ commit -m " files。非常适合与 crontab 一起使用 :+)
【解决方案2】:

您也可以使用环境变量$GIT_DIR$GIT_WORK_TREE 达到与--git-dir--work-tree 相同的效果

当您在另一个目录中时,这些是提交文件的步骤:

git --git-dir=/path/to/my/directory/.git/ --work-tree=/path/to/my/directory/ add myFile
git --git-dir=/path/to/my/directory/.git/ --work-tree=/path/to/my/directory/ commit -m 'something'

【讨论】:

  • 这对我不起作用,直到我从 --git-dir 中删除了“=”。它也可能需要从--work-tree 中删除它。也许 git 版本有所不同?
【解决方案3】:

在使用 --git-dir 参数提交所有内容后,从 repo 中删除了几个文件,我不得不恢复它们。 对我来说,最好的解决方案是在一个脚本中对另一个文件夹执行cd,然后执行 git 命令。如果没有每个命令中的参数,编写的代码就更少了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 2019-01-23
    • 2015-07-27
    • 1970-01-01
    • 2018-12-28
    • 2012-07-18
    • 2015-02-27
    相关资源
    最近更新 更多