我试图获取使用master
运行diff时在一次提交中更改的文件的根文件夹的路径。
说,我在分支feature/DeploymentReady
上。针对diff
运行master
时,我试图获取父文件夹的路径,而不是该文件夹内文件的路径。
我的文件夹结构如下:
ParentFolder
- 文件夹1
- ChildFolder1
- Text1.txt
- Text2.txt
- 文件夹2
- ChildFolder2
- Text3.txt
- Text4.txt
因此,如果我在Text1.txt
中进行了某些更改,我需要Folder1
的路径,但是我正在获得ChildFolder1
的路径。
我尝试了这个:
git diff --name-only HEAD^
这提供了在feature/DeploymentReady
分支上更改的所有文件的路径。
我也尝试参考这里的答案git diff --dirstat=files,0 HEAD~1 | sed 's/^[ 0-9.]\+% //g'
[链接] git diff - only show which directories changed
以上解决方案达到了目的的一半。它为我提供了已更改文件的父文件夹,但我需要根文件夹路径。
我希望获得根文件夹路径,但获得父文件夹路径。
答案 0 :(得分:0)
这与附加文件名有何不同?
如果您可以返回project/folder1/childfolder1/
,则只需将文件名添加到字符串的末尾。
答案 1 :(得分:0)
作为一种解决方法,目前,我正在使用git diff --dirstat=files,0 HEAD~1 | sed 's/^[ 0-9.]\+% //g'| cut -d'/' -f1-6
向上移动目录。 f1-6范围适用于我的实际文件夹结构。