Git status - is there a way to show changes only in a specific directory?

前端 未结 4 1624
孤独总比滥情好
孤独总比滥情好 2020-12-04 18:52

I would like to see a list of files modified since the last commit, as git status shows, but I care only about files located in a single directory. Is there a w

相关标签:
4条回答
  • 2020-12-04 19:01

    As a note, if you simplify to check git stats without going to git directory;

    ### create file
    sudo nano /usr/local/bin/gitstat
    
    ### put this in
    
    #!/usr/bin/env bash
    
    dir=$1
    
    if [[ $dir == "" ]]; then
        echo "Directory is required!"
        exit
    fi
    
    echo "Git stat for '$dir'."
    
    git --git-dir=$dir/.git --work-tree=$dir diff --stat
    
    ### give exec perm
    sudo chmod +x /usr/local/bin/gitstat
    

    And calling that simple script: gitstat /path/to/foo-project. You can also use it while in foo-project just doing gitstat . and so suppose shorter than git status -s, git diff --stat or git diff --stat HEAD if your are always using console instead of gui's.

    Credits:

    • @Charles Bailey: https://stackoverflow.com/a/715373/362780
    • Git Status From Outside of the Working Directory
    0 讨论(0)
  • 2020-12-04 19:07

    The reason that git status takes the same options as git commit is that the purpose of git status is to show what would happen if you committed with the same options as you passed to git status. In this respect git status is really git commit --preview.

    To get what you want, you could do this which shows staged changes:

    git diff --stat --cached -- <directory_of_interest>
    

    and this, which shows unstaged changes:

    git diff --stat -- <directory_of_interest>
    

    or this which shows both:

    git diff --stat HEAD -- <directory_of_interest>
    
    0 讨论(0)
  • 2020-12-04 19:13

    From within the directory:

    git status .
    

    You can use any path really, use this syntax:

    git status <directoryPath>
    

    For instance for directory with path "my/cool/path/here"

    git status my/cool/path/here
    
    0 讨论(0)
  • 2020-12-04 19:26

    Simplest solution:

    1. Go to the directory
    2. git status | grep -v '\.\.\/'

    Of course this discards colors.

    0 讨论(0)
提交回复
热议问题