针对master运行git diff时,有没有办法获取文件的根目录路径?

时间:2019-04-02 14:45:31

标签: git git-diff

我试图获取使用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

以上解决方案达到了目的的一半。它为我提供了已更改文件的父文件夹,但我需要根文件夹路径。

我希望获得根文件夹路径,但获得父文件夹路径。

2 个答案:

答案 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范围适用于我的实际文件夹结构。