Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当前路径对某些git操作重要吗?_Git_Path_Commit_Relative Path_Patch - Fatal编程技术网

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

当前路径对某些git操作重要吗?,git,path,commit,relative-path,patch,Git,Path,Commit,Relative Path,Patch,比如说,我的git repo(即.git文件夹)位于~/my\u project/中。还假设我的项目文件夹是这样组合的: my_project | |____src | |__com | |__org 最后,假设我想准备提交com文件夹。我至少可以用两种方式来做: albus@hogwarts:~/myu项目$git add src/com albus@hogwarts:~

比如说,我的git repo(即
.git
文件夹)位于
~/my\u project/
中。还假设我的项目文件夹是这样组合的:

my_project
      |
      |____src
            |
            |__com
            |
            |__org
最后,假设我想准备提交
com
文件夹。我至少可以用两种方式来做:

  • albus@hogwarts:~/myu项目$git add src/com
  • albus@hogwarts:~/my\u project/src$git add com
这两种调用之间有什么区别吗?那么
git格式补丁
git-am
呢?它们是否依赖于当前路径

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


谢谢

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

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

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

--相对[=
]

从项目的子目录运行时,可以告诉它排除目录外的更改,并显示相对于项目的路径名 它使用这个选项。当您不在子目录中时(例如,在 裸存储库),您可以指定要生成输出的子目录 通过给出一个参数作为论据相对于


好的,我刚刚检查了
格式补丁
(你可以这样做,因为git是分散的,你可以随时随地创建回购协议)。不管你在哪个目录下,它都会给出相同的输出,文件都是相同的。是的,你说得对,我可以自己试试,但专家的知识总是值得一听的。