当前路径对某些git操作是否重要?

时间:2011-10-09 19:42:21

标签: git path commit relative-path patch

说,我的git仓库(.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-patch还是git am呢?他们是否依赖当前的路径?

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

谢谢!

1 个答案:

答案 0 :(得分:3)

无论您在何处运行命令,

git format-patch都会创建相同的补丁。只有改变的是 生成补丁文件。

但是不同的命令行为不同,这也取决于应用于它们的标志。

例如,git diff--relative标记:

  

- 相对[= <path>]

     

从项目的子目录运行时,可以告诉它排除目录外的更改并显示相对于的目录的路径名   它有这个选项。当你不在一个子目录中时(例如在   裸存储库),您可以命名哪个子目录来进行输出   相对于给出一个参数。