说,我的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进入画面的专家,因此我在这里问它。
谢谢!
答案 0 :(得分:3)
git format-patch
都会创建相同的补丁。只有改变的是 生成补丁文件。
但是不同的命令行为不同,这也取决于应用于它们的标志。
例如,git diff
有--relative
标记:
- 相对[=
<path>
]从项目的子目录运行时,可以告诉它排除目录外的更改并显示相对于的目录的路径名 它有这个选项。当你不在一个子目录中时(例如在 裸存储库),您可以命名哪个子目录来进行输出 相对于给出一个参数。