【问题标题】:Does the current path matter for some git operations?当前路径对某些 git 操作是否重要?
【发布时间】:2011-12-04 02:22:35
【问题描述】:

说,我的 git repo(.git 文件夹)位于 ~/my_project/。还假设我的项目文件夹是这样组装的:

my_project
      |
      |____src
            |
            |__com
            |
            |__org

最后,假设我想暂存com 文件夹以进行提交。我至少可以通过两种方式做到这一点:

  • albus@hogwarts:~/my_project$ git add src/com
  • albus@hogwarts:~/my_project/src$ git add com

这两种调用有什么区别吗? git format-patchgit am 呢?它们是否依赖于当前路径?

人们可能会嘲笑我的问题,但事实是,我的一位同事说他们在应用一些补丁时遇到了麻烦,即他们必须从项目路径中的不同目录应用它们。他们还建议我应该从最上面的项目文件夹(即本例中的my_project)中执行所有 git 命令。我从来没有想过这可能是真的,但我不是 git 进入图片的专家,因此我在这里问它。

谢谢!

【问题讨论】:

  • 好吧,我刚刚检查了format-patch(你可以这样做,因为 git 是去中心化的,你可以随时随地创建 repo)。无论您在哪个目录中,它都会提供相同的输出,文件是相同的。
  • 是的,你说得对,我可以自己尝试一下,但专家的知识总是值得一听的。

标签: git path commit relative-path patch


【解决方案1】:

git format-patch 无论您在何处运行命令,都会创建相同的补丁。唯一改变的是生成补丁文件的位置

但不同的命令表现不同,这也取决于应用于它们的标志。

例如,git diff 具有 --relative 标志:

--相对[=<path>]

从项目的子目录运行时,可以告诉它排除目录之外的更改并显示相对于 它与此选项。当您不在子目录中时(例如,在 裸存储库),您可以命名要输出的子目录 相对于通过给出 a 作为参数。

【讨论】:

    猜你喜欢
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 2018-08-31
    • 2011-08-06
    • 1970-01-01
    • 2012-11-27
    相关资源
    最近更新 更多