mirror of
https://github.com/oh-my-fish/oh-my-fish.git
synced 2025-02-15 01:24:28 +08:00
![Johannes Altmanninger](/assets/img/avatar_default.png)
Some git commands require to be run from inside the worktree (as opposed to the git dir, although it's usually in .git). This commit adds a function git_is_worktree to check this. It is used for the commands that need the worktree instead of git_is_repo. An alternative solution might have been to find the git worktree in the parent of the git directory, but this doesn't work for all cases. Generally it's impossible to detect the location of the worktree (plus it's not unique). Co-authored-by: Pablo Aguiar <scorphus@gmail.com>
9 lines
398 B
Fish
9 lines
398 B
Fish
function git_is_touched -d "Check if repo has any changes"
|
|
git_is_worktree; and begin
|
|
# The first checks for staged changes, the second for unstaged ones.
|
|
# We put them in this order because checking staged changes is *fast*.
|
|
not command git diff-index --cached --quiet HEAD -- >/dev/null 2>&1
|
|
or not command git diff --no-ext-diff --quiet --exit-code >/dev/null 2>&1
|
|
end
|
|
end
|