git diff on a bare repo

前端 未结 2 662
栀梦
栀梦 2021-02-10 04:27

I wanna see how much a repo changed in the last month on gitlab server side

cd /path/to/my/bare/repo.git/
git --git-dir . diff --shortstat \"@{1 month ago}\"
fa         


        
相关标签:
2条回答
  • 2021-02-10 04:30

    Try and make sure, when diff'ing in a bare repo, to specify two commits (or diff would default to the working tree, which doesn't exist in a bare repo).

    You don't need --git-dir .

    However, using date when specifying a revision wouldn't work, as it is based on logs/refs, which doesn't exist in a bare repo

    <refname>@{<date>}, e.g. master@{yesterday}, HEAD@{5 minutes ago}
    

    A ref followed by the suffix @ with a date specification enclosed in a brace pair (e.g. {yesterday}, {1 month 2 weeks 3 days 1 hour 1 second ago} or {1979-02-26 18:30:00}) specifies the value of the ref at a prior point in time.
    This suffix may only be used immediately following a ref name and the ref must have an existing log ($GIT_DIR/logs/<ref>).

    0 讨论(0)
  • 2021-02-10 04:31

    I found this question because I was getting fatal: This operation must be run in a work tree

    If you are getting the error (in your bare repo):

    [ec2-user@xxxxx git]$ git diff 81dcb182e4d16b6894b69a5b31133b8d8ff6c5e2
    fatal: This operation must be run in a work tree
    

    Ensure you are providing two commit hashes to diff.(as HEAD is a symbolic ref)

    [ec2-user@xxxxx git]$ git diff <BASE COMMIT HASH> <UPDATE COMMIT HASH>
    

    Eg.

    [ec2-user@xxxxx git]$ git diff 11dcb182e4d16b6894b69a5b31133b8d8ff6c5ex 81dcb182e4d16b6894b69a5b31133b8d8ff6c5e2
    
    0 讨论(0)
提交回复
热议问题