Git
Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden โ
Watโ
Toont git-informatie wanneer je je in een Git-repository bevindt. Werkt ook voor submappen. Voor maximale compatibiliteit
zorg ervoor dat je git-executable up-to-date is (bijvoorbeeld wanneer branch- of statusinformatie onjuist is).
Voorbeeldconfiguratieโ
- json
- yaml
- toml
{
"type": "git",
"style": "powerline",
"powerline_symbol": "๎ฐ",
"foreground": "#193549",
"background": "#ffeb3b",
"background_templates": [
"{{ if or (.Working.Changed) (.Staging.Changed) }}#FFEB3B{{ end }}",
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}#FFCC80{{ end }}",
"{{ if gt .Ahead 0 }}#B388FF{{ end }}",
"{{ if gt .Behind 0 }}#B388FB{{ end }}"
],
"template": "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} ๏ {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} ๏ {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} ๏ {{ .StashCount }}{{ end }}",
"options": {
"fetch_status": true,
"fetch_upstream_icon": true,
"untracked_modes": {
"/Users/user/Projects/oh-my-posh/": "no"
},
"source": "cli",
"mapped_branches": {
"feat/*": "๐ ",
"bug/*": "๐ "
}
}
}
type: git
style: powerline
powerline_symbol: ๎ฐ
foreground: "#193549"
background: "#ffeb3b"
background_templates:
- "{{ if or (.Working.Changed) (.Staging.Changed) }}#FFEB3B{{ end }}"
- "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#FFCC80{{ end }}"
- "{{ if gt .Ahead 0 }}#B388FF{{ end }}"
- "{{ if gt .Behind 0 }}#B388FB{{ end }}"
template: "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus
}}{{ end }}{{ if .Working.Changed }} ๏ {{ .Working.String }}{{ end }}{{ if and
(.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} ๏
{{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} ๏ {{ .StashCount }}{{
end }}"
options:
fetch_status: true
fetch_upstream_icon: true
untracked_modes:
/Users/user/Projects/oh-my-posh/: no
source: cli
mapped_branches:
feat/*: "๐ "
bug/*: "๐ "
type = "git"
style = "powerline"
powerline_symbol = "๎ฐ"
foreground = "#193549"
background = "#ffeb3b"
background_templates = [ "{{ if or (.Working.Changed) (.Staging.Changed) }}#FFEB3B{{ end }}", "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#FFCC80{{ end }}", "{{ if gt .Ahead 0 }}#B388FF{{ end }}", "{{ if gt .Behind 0 }}#B388FB{{ end }}" ]
template = "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} ๏ {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} ๏ {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} ๏ {{ .StashCount }}{{ end }}"
[options]
fetch_status = true
fetch_upstream_icon = true
source = "cli"
[options.untracked_modes]
"/Users/user/Projects/oh-my-posh/" = "no"
[options.mapped_branches]
"feat/*" = "๐ "
"bug/*" = "๐ "
Optiesโ
Informatie ophalenโ
Omdat meerdere git-opdrachten de promptervaring kunnen vertragen, halen we standaard geen informatie op.
Je kunt de volgende opties op true zetten om het ophalen van aanvullende informatie in te schakelen (en de template te vullen).
| Name | Type | Default | Description |
|---|---|---|---|
fetch_status | boolean | false | fetch the local changes |
fetch_push_status | boolean | false | fetch the push-remote ahead/behind information. Requires fetch_status to be enabled |
ignore_status | []string | do not fetch status for these repo's. Uses the repo's root folder and same logic as the exclude_folders property | |
fetch_upstream_icon | boolean | false | fetch upstream icon |
fetch_bare_info | boolean | false | fetch bare repo info |
fetch_user | User | false | fetch the current configured user for the repository |
untracked_modes | map[string]string | map of repo's where to override the default untracked files mode:
"untracked_modes": { "/Users/me/repos/repo1": "no" } - defaults to normal for all repo's. If you want to override for all repo's, use * to set the mode instead of the repo path | |
ignore_submodules | map[string]string | map of repo's where to change the --ignore-submodules flag (none, untracked, dirty or all). For example "ignore_submodules": { "/Users/me/repos/repo1": "all" }. If you want to override for all repo's, use * to set the mode instead of the repo path | |
native_fallback | boolean | false | when set to true and git.exe is not available when inside a WSL2 shared Windows drive, we will fallback to the native git executable to fetch data. Not all information can be displayed in this case |
status_formats | map[string]string | a key, value map allowing to override how individual status items are displayed. For example, "status_formats": { "Added": "Added: %d" } will display the added count as Added: 1 instead of +1. See the Status section for available overrides. | |
source | string | cli |
|
mapped_branches | object | custom glyph/text for specific branches. You can use * at the end as a wildcard character for matching | |
branch_template | string | a template to format that branch name. You can use {{ .Branch }} as reference to the original branch name | |
disable_with_jj | boolean | false | disable the git segment in case of a Jujutsu collocated repository |
Pictogrammenโ
Branchโ
| Name | Type | Default | Description |
|---|---|---|---|
branch_icon | string | \uE0A0 | the icon to use in front of the git branch name |
branch_identical_icon | string | \u2261 | the icon to display when remote and local are identical |
branch_ahead_icon | string | \u2191 | the icon to display when the local branch is ahead of its remote |
branch_behind_icon | string | \u2193 | the icon to display when the local branch is behind its remote |
branch_gone_icon | string | \u2262 | the icon to display when there's no remote branch |
HEADโ
| Name | Type | Default | Description |
|---|---|---|---|
commit_icon | string | \uF417 | icon/text to display before the commit context (detached HEAD) |
tag_icon | string | \uF412 | icon/text to display before the tag context |
rebase_icon | string | \uE728 | icon/text to display before the context when in a rebase |
cherry_pick_icon | string | \uE29B | icon/text to display before the context when doing a cherry-pick |
revert_icon | string | \uF0E2 | icon/text to display before the context when doing a revert |
merge_icon | string | \uE727 | icon/text to display before the merge context |
no_commits_icon | string | \uF594 | icon/text to display when there are no commits in the repo |
Upstreamโ
| Name | Type | Default | Description |
|---|---|---|---|
github_icon | string | \uF408 | icon/text to display when the upstream is GitHub |
gitlab_icon | string | \uF296 | icon/text to display when the upstream is GitLab |
bitbucket_icon | string | \uF171 | icon/text to display when the upstream is Bitbucket |
azure_devops_icon | string | \uEBE8 | icon/text to display when the upstream is Azure DevOps |
codecommit_icon | string | \uF270 | icon/text to display when the upstream is AWS CodeCommit |
codeberg_icon | string | \uF330 | icon/text to display when the upstream is Codeberg |
git_icon | string | \uE5FB | icon/text to display when the upstream is not known/mapped |
upstream_icons | map[string]string | a key, value map representing the remote URL (or a part of that URL) and icon to use in case the upstream URL contains the key. These get precedence over the standard icons |
Template (informatie)โ
{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uF044 {{ .Working.String }}{{ end }}{{ if and (.Staging.Changed) (.Working.Changed) }} |{{ end }}{{ if .Staging.Changed }} \uF046 {{ .Staging.String }}{{ end }}
Eigenschappenโ
| Name | Type | Description |
|---|---|---|
.RepoName | string | the repo folder name |
.Working | Status | changes in the worktree (see below) |
.Staging | Status | staged changes in the work tree (see below) |
.HEAD | string | the current HEAD context (branch/rebase/merge/...) |
.Ref | string | the current HEAD reference (branch/tag/...) |
.Behind | int | commits behind of upstream |
.Ahead | int | commits ahead of upstream |
.PushBehind | int | commits behind of push remote |
.PushAhead | int | commits ahead of push remote |
.BranchStatus | string | the current branch context (ahead/behind string representation) |
.Upstream | string | the upstream name (remote) |
.UpstreamGone | boolean | whether the upstream is gone (no remote) |
.UpstreamIcon | string | the upstream icon (based on the icons above) |
.UpstreamURL | string | the upstream URL for use in hyperlinks in templates: {{ url .UpstreamIcon .UpstreamURL }} |
.RawUpstreamURL | string | the raw upstream URL (not cleaned up for display) |
.Hash | string | the full commit hash |
.ShortHash | string | the short commit hash (7 characters) |
.StashCount | int | the stash count |
.WorktreeCount | int | the worktree count |
.IsWorkTree | boolean | if in a worktree repo or not |
.IsBare | boolean | if in a bare repo or not, only set when fetch_bare_info is set to true |
.Dir | string | the repository's root directory |
.RelativeDir | string | the current directory relative to the root directory |
.Kraken | string | a link to the current HEAD in GitKraken for use in hyperlinks in templates {{ url .HEAD .Kraken }} |
.Commit | Commit | HEAD commit information (see below) |
.Detached | boolean | true when the head is detached |
.Merge | boolean | true when in a merge |
.Rebase | Rebase | contains the relevant information when in a rebase |
.CherryPick | boolean | true when in a cherry pick |
.Revert | boolean | true when in a revert |
.User | User | the current configured user (requires fetch_user to be enabled) |
.Remotes | map[string]string | a map of remote names to their URLs |
.LatestTag | string | the latest tag name |
Statusโ
| Name | Type | Description |
|---|---|---|
.Unmerged | int | number of unmerged changes |
.Deleted | int | number of deleted changes |
.Added | int | number of added changes |
.Modified | int | number of modified changes |
.Untracked | int | number of untracked changes |
.Changed | boolean | if the status contains changes or not |
.String | string | a string representation of the changes above |
Lokale wijzigingen gebruiken de volgende syntax:
| Icon | Description |
|---|---|
x | Unmerged |
- | Deleted |
+ | Added |
~ | Modified |
? | Untracked |
Commitโ
| Name | Type | Description |
|---|---|---|
.Author | User | the author of the commit (see below) |
.Committer | User | the committer of the commit (see below) |
.Subject | string | the commit subject |
.Timestamp | time.Time | the commit timestamp |
.Sha | string | the commit SHA1 |
.Refs | Refs | the commit references |
Gebruikerโ
| Name | Type | Description |
|---|---|---|
.Name | string | the user's name |
.Email | string | the user's email |
Refsโ
| Name | Type | Description |
|---|---|---|
.Heads | []string | branches |
.Tags | []string | commit's tags |
.Remotes | []string | remote references |
Aangezien dit arrays van strings zijn, kun je ze samenvoegen met de join functie:
{{ join ", " .Commit.Refs.Tags }}
Rebaseโ
| Name | Type | Description |
|---|---|---|
.Current | int | the current rebase step |
.Total | int | the total number of rebase steps |
.HEAD | string | the current HEAD |
.Onto | string | the branch we're rebasing onto |
posh-gitโ
Als je de standaard posh-git-output wilt tonen, gebruik niet dit segment
maar voeg het volgende fragment toe na het initialiseren van Oh My Posh in je $PROFILE:
function Set-PoshGitStatus {
$global:GitStatus = Get-GitStatus
$env:POSH_GIT_STRING = Write-GitStatus -Status $global:GitStatus
}
New-Alias -Name 'Set-PoshContext' -Value 'Set-PoshGitStatus' -Scope Global -Force
Je kunt dan de POSH_GIT_STRING omgevingsvariabele gebruiken in een tekstsegment:
- json
- yaml
- toml
{
"template": "{{ if .Env.POSH_GIT_STRING }} {{ .Env.POSH_GIT_STRING }} {{ end }}"
}
template: "{{ if .Env.POSH_GIT_STRING }} {{ .Env.POSH_GIT_STRING }} {{ end }}"
template = "{{ if .Env.POSH_GIT_STRING }} {{ .Env.POSH_GIT_STRING }} {{ end }}"