linux - git命令应该直接在工作目录下运行吗?

标签 linux git

假设我有一个 git 工作目录,即该目录有一个名为 .git 的子目录。

我想知道当我运行 git 命令时当前目录是否重要。 运行一个git命令可以吗

  • 直接在工作目录下

  • 直接在工作目录的某个子目录下

  • 直接在工作目录的父目录下?

考虑

  • git 命令可以带一个指定一些文件的参数,例如git add
  • 不带指定某些文件的参数的 git 命令,例如git pull, git push.

最佳答案

directly under the parent directory of the working directory?

实际上,只要您引用 git 存储库,您就可以在任何地方运行它:

git --git-dir=/path/to/my/repo/.git add .

这意味着无论您身在何处(.:当前文件夹)都将被视为您的工作树。一个

您甚至可以指定您的工作树:

git --work-tree=/a/path --git-dir=/path/to/my/repo/.git add .

在后一种情况下,您甚至可以在任何您想要的地方执行最后一条命令。 '.' 将是工作树 /a/path

Since git 1.8.5, you also have the -C option :

git -C /path/to/my/repo add .

同样,您可以在任何您想要的地方执行它,但该命令将在内部先执行 cd/path/to/my/repo,然后执行 add 。。这意味着“.”实际上是/path/to/my/repo

Finally, since git 2.5 , 一个 git repo 支持多个工作树,所以你可以在一个不包含子文件夹 .git 的文件夹中执行你的命令(但实际上是一种指向 /path/to/的符号链接(symbolic link)我的/repo/git)

关于linux - git命令应该直接在工作目录下运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34476787/

相关文章:

c++ - linux 中 windows SYSTEM_INFO 结构的替代方案

linux - 使用通配符 ftp 多个新文件

linux - 如何在 Linux 上取消关机?

java - 克隆后 IntelliJ 无法识别 java 项目

c - 使用 C 中的静态库重定向标准输出(例如到文件)

linux - 接受用户输入并添加到 bash 脚本中的文件中

git - 如何在 1.8.3 中 Git stash pop specific stash?

git - 从一个 repo git clone 并将 origin 设置为另一个是 "safe"吗?

与 VS 2012 项目文件相关的 Git 问题

git - 强制docker根据git repo的最新提交重建层