【发布时间】:2014-05-06 15:50:40
【问题描述】:
如何从另一个目录运行git commit -m '...' 命令?
我编辑我的文件:
vim /home/.../myFile
我添加它使用:
git add /home/.../myFile
但是现在,我该如何提交更改?
git commit -m '...' ???
【问题讨论】:
标签: git
如何从另一个目录运行git commit -m '...' 命令?
我编辑我的文件:
vim /home/.../myFile
我添加它使用:
git add /home/.../myFile
但是现在,我该如何提交更改?
git commit -m '...' ???
【问题讨论】:
标签: git
您可以使用git -C <path>。
来自https://git-scm.com/docs/git/2.4.4
git -C
: 就像 git 在 而不是当前工作目录中启动一样运行。
【讨论】:
-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 一起使用 :+)
您也可以使用环境变量$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 版本有所不同?
在使用 --git-dir 参数提交所有内容后,从 repo 中删除了几个文件,我不得不恢复它们。
对我来说,最好的解决方案是在一个脚本中对另一个文件夹执行cd,然后执行 git 命令。如果没有每个命令中的参数,编写的代码就更少了。
【讨论】: