git 1.19.1 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +5 -1
- data/AI_POLICY.md +24 -0
- data/CHANGELOG.md +689 -0
- data/CODE_OF_CONDUCT.md +25 -0
- data/CONTRIBUTING.md +1175 -97
- data/GOVERNANCE.md +106 -0
- data/LICENSE +1 -1
- data/MAINTAINERS.md +17 -4
- data/README.md +476 -320
- data/UPGRADING.md +1138 -0
- data/git.gemspec +124 -36
- data/lib/git/author.rb +39 -7
- data/lib/git/author_info.rb +66 -0
- data/lib/git/branch.rb +615 -65
- data/lib/git/branch_delete_failure.rb +34 -0
- data/lib/git/branch_delete_result.rb +66 -0
- data/lib/git/branch_info.rb +237 -0
- data/lib/git/branches.rb +167 -44
- data/lib/git/command_line/base.rb +247 -0
- data/lib/git/command_line/capturing.rb +308 -0
- data/lib/git/command_line/result.rb +88 -0
- data/lib/git/command_line/streaming.rb +236 -0
- data/lib/git/command_line.rb +52 -0
- data/lib/git/commands/add.rb +139 -0
- data/lib/git/commands/am/abort.rb +43 -0
- data/lib/git/commands/am/apply.rb +263 -0
- data/lib/git/commands/am/continue.rb +43 -0
- data/lib/git/commands/am/quit.rb +43 -0
- data/lib/git/commands/am/retry.rb +49 -0
- data/lib/git/commands/am/show_current_patch.rb +64 -0
- data/lib/git/commands/am/skip.rb +42 -0
- data/lib/git/commands/am.rb +33 -0
- data/lib/git/commands/apply.rb +242 -0
- data/lib/git/commands/archive/list_formats.rb +46 -0
- data/lib/git/commands/archive.rb +145 -0
- data/lib/git/commands/arguments.rb +4521 -0
- data/lib/git/commands/base.rb +502 -0
- data/lib/git/commands/branch/copy.rb +102 -0
- data/lib/git/commands/branch/create.rb +177 -0
- data/lib/git/commands/branch/delete.rb +88 -0
- data/lib/git/commands/branch/list.rb +178 -0
- data/lib/git/commands/branch/move.rb +102 -0
- data/lib/git/commands/branch/set_upstream.rb +86 -0
- data/lib/git/commands/branch/show_current.rb +49 -0
- data/lib/git/commands/branch/unset_upstream.rb +53 -0
- data/lib/git/commands/branch.rb +34 -0
- data/lib/git/commands/cat_file/batch.rb +385 -0
- data/lib/git/commands/cat_file/filtered.rb +105 -0
- data/lib/git/commands/cat_file/raw.rb +271 -0
- data/lib/git/commands/cat_file.rb +49 -0
- data/lib/git/commands/checkout/branch.rb +153 -0
- data/lib/git/commands/checkout/files.rb +116 -0
- data/lib/git/commands/checkout.rb +38 -0
- data/lib/git/commands/checkout_index.rb +106 -0
- data/lib/git/commands/clean.rb +102 -0
- data/lib/git/commands/clone.rb +241 -0
- data/lib/git/commands/commit.rb +273 -0
- data/lib/git/commands/commit_tree.rb +101 -0
- data/lib/git/commands/config_option_syntax/add.rb +86 -0
- data/lib/git/commands/config_option_syntax/get.rb +121 -0
- data/lib/git/commands/config_option_syntax/get_all.rb +118 -0
- data/lib/git/commands/config_option_syntax/get_color.rb +95 -0
- data/lib/git/commands/config_option_syntax/get_color_bool.rb +96 -0
- data/lib/git/commands/config_option_syntax/get_regexp.rb +119 -0
- data/lib/git/commands/config_option_syntax/get_urlmatch.rb +111 -0
- data/lib/git/commands/config_option_syntax/list.rb +111 -0
- data/lib/git/commands/config_option_syntax/remove_section.rb +79 -0
- data/lib/git/commands/config_option_syntax/rename_section.rb +83 -0
- data/lib/git/commands/config_option_syntax/replace_all.rb +109 -0
- data/lib/git/commands/config_option_syntax/set.rb +119 -0
- data/lib/git/commands/config_option_syntax/unset.rb +92 -0
- data/lib/git/commands/config_option_syntax/unset_all.rb +94 -0
- data/lib/git/commands/config_option_syntax.rb +56 -0
- data/lib/git/commands/describe.rb +156 -0
- data/lib/git/commands/diff.rb +657 -0
- data/lib/git/commands/diff_files.rb +519 -0
- data/lib/git/commands/diff_index.rb +499 -0
- data/lib/git/commands/fetch.rb +354 -0
- data/lib/git/commands/fsck.rb +138 -0
- data/lib/git/commands/gc.rb +134 -0
- data/lib/git/commands/grep.rb +339 -0
- data/lib/git/commands/init.rb +101 -0
- data/lib/git/commands/log.rb +634 -0
- data/lib/git/commands/ls_files.rb +195 -0
- data/lib/git/commands/ls_remote.rb +161 -0
- data/lib/git/commands/ls_tree.rb +135 -0
- data/lib/git/commands/maintenance/register.rb +77 -0
- data/lib/git/commands/maintenance/run.rb +109 -0
- data/lib/git/commands/maintenance/start.rb +71 -0
- data/lib/git/commands/maintenance/stop.rb +60 -0
- data/lib/git/commands/maintenance/unregister.rb +84 -0
- data/lib/git/commands/maintenance.rb +31 -0
- data/lib/git/commands/merge/abort.rb +44 -0
- data/lib/git/commands/merge/continue.rb +44 -0
- data/lib/git/commands/merge/quit.rb +46 -0
- data/lib/git/commands/merge/start.rb +250 -0
- data/lib/git/commands/merge.rb +28 -0
- data/lib/git/commands/merge_base.rb +91 -0
- data/lib/git/commands/mv.rb +82 -0
- data/lib/git/commands/name_rev.rb +119 -0
- data/lib/git/commands/pull.rb +382 -0
- data/lib/git/commands/push.rb +251 -0
- data/lib/git/commands/read_tree.rb +154 -0
- data/lib/git/commands/remote/add.rb +96 -0
- data/lib/git/commands/remote/get_url.rb +68 -0
- data/lib/git/commands/remote/list.rb +56 -0
- data/lib/git/commands/remote/prune.rb +63 -0
- data/lib/git/commands/remote/remove.rb +52 -0
- data/lib/git/commands/remote/rename.rb +76 -0
- data/lib/git/commands/remote/set_branches.rb +70 -0
- data/lib/git/commands/remote/set_head.rb +89 -0
- data/lib/git/commands/remote/set_url.rb +78 -0
- data/lib/git/commands/remote/set_url_add.rb +70 -0
- data/lib/git/commands/remote/set_url_delete.rb +71 -0
- data/lib/git/commands/remote/show.rb +77 -0
- data/lib/git/commands/remote/update.rb +79 -0
- data/lib/git/commands/remote.rb +42 -0
- data/lib/git/commands/repack.rb +281 -0
- data/lib/git/commands/reset.rb +154 -0
- data/lib/git/commands/rev_parse.rb +304 -0
- data/lib/git/commands/revert/abort.rb +45 -0
- data/lib/git/commands/revert/continue.rb +62 -0
- data/lib/git/commands/revert/quit.rb +47 -0
- data/lib/git/commands/revert/skip.rb +44 -0
- data/lib/git/commands/revert/start.rb +158 -0
- data/lib/git/commands/revert.rb +29 -0
- data/lib/git/commands/rm.rb +113 -0
- data/lib/git/commands/show.rb +632 -0
- data/lib/git/commands/show_ref/exclude_existing.rb +119 -0
- data/lib/git/commands/show_ref/exists.rb +80 -0
- data/lib/git/commands/show_ref/list.rb +149 -0
- data/lib/git/commands/show_ref/verify.rb +122 -0
- data/lib/git/commands/show_ref.rb +42 -0
- data/lib/git/commands/stash/apply.rb +81 -0
- data/lib/git/commands/stash/branch.rb +67 -0
- data/lib/git/commands/stash/clear.rb +43 -0
- data/lib/git/commands/stash/create.rb +60 -0
- data/lib/git/commands/stash/drop.rb +73 -0
- data/lib/git/commands/stash/list.rb +43 -0
- data/lib/git/commands/stash/pop.rb +87 -0
- data/lib/git/commands/stash/push.rb +112 -0
- data/lib/git/commands/stash/show.rb +158 -0
- data/lib/git/commands/stash/store.rb +72 -0
- data/lib/git/commands/stash.rb +38 -0
- data/lib/git/commands/status.rb +174 -0
- data/lib/git/commands/symbolic_ref/delete.rb +72 -0
- data/lib/git/commands/symbolic_ref/read.rb +99 -0
- data/lib/git/commands/symbolic_ref/update.rb +79 -0
- data/lib/git/commands/symbolic_ref.rb +38 -0
- data/lib/git/commands/tag/create.rb +142 -0
- data/lib/git/commands/tag/delete.rb +57 -0
- data/lib/git/commands/tag/list.rb +146 -0
- data/lib/git/commands/tag/verify.rb +71 -0
- data/lib/git/commands/tag.rb +26 -0
- data/lib/git/commands/update_ref/batch.rb +145 -0
- data/lib/git/commands/update_ref/delete.rb +90 -0
- data/lib/git/commands/update_ref/update.rb +103 -0
- data/lib/git/commands/update_ref.rb +42 -0
- data/lib/git/commands/version.rb +60 -0
- data/lib/git/commands/worktree/add.rb +139 -0
- data/lib/git/commands/worktree/list.rb +64 -0
- data/lib/git/commands/worktree/lock.rb +58 -0
- data/lib/git/commands/worktree/management_base.rb +51 -0
- data/lib/git/commands/worktree/move.rb +66 -0
- data/lib/git/commands/worktree/prune.rb +67 -0
- data/lib/git/commands/worktree/remove.rb +63 -0
- data/lib/git/commands/worktree/repair.rb +76 -0
- data/lib/git/commands/worktree/unlock.rb +47 -0
- data/lib/git/commands/worktree.rb +43 -0
- data/lib/git/commands/write_tree.rb +68 -0
- data/lib/git/commands.rb +88 -0
- data/lib/git/config.rb +72 -5
- data/lib/git/config_entry_info.rb +106 -0
- data/lib/git/configuring.rb +795 -0
- data/lib/git/detached_head_info.rb +57 -0
- data/lib/git/diff.rb +437 -86
- data/lib/git/diff_file_numstat_info.rb +31 -0
- data/lib/git/diff_file_patch_info.rb +136 -0
- data/lib/git/diff_file_raw_info.rb +129 -0
- data/lib/git/diff_info.rb +162 -0
- data/lib/git/diff_path_status.rb +107 -0
- data/lib/git/diff_result.rb +34 -0
- data/lib/git/diff_stats.rb +111 -0
- data/lib/git/dirstat_info.rb +102 -0
- data/lib/git/encoding_utils.rb +32 -1
- data/lib/git/errors.rb +285 -0
- data/lib/git/escaped_path.rb +57 -5
- data/lib/git/execution_context/global.rb +31 -0
- data/lib/git/execution_context/repository.rb +151 -0
- data/lib/git/execution_context.rb +559 -0
- data/lib/git/factories.rb +813 -0
- data/lib/git/file_ref.rb +77 -0
- data/lib/git/fsck_object.rb +56 -0
- data/lib/git/fsck_result.rb +132 -0
- data/lib/git/log.rb +306 -90
- data/lib/git/object.rb +563 -141
- data/lib/git/parsers/branch.rb +240 -0
- data/lib/git/parsers/cat_file.rb +111 -0
- data/lib/git/parsers/config_entry.rb +110 -0
- data/lib/git/parsers/diff.rb +792 -0
- data/lib/git/parsers/fsck.rb +144 -0
- data/lib/git/parsers/grep.rb +42 -0
- data/lib/git/parsers/ls_remote.rb +79 -0
- data/lib/git/parsers/ls_tree.rb +58 -0
- data/lib/git/parsers/remote.rb +162 -0
- data/lib/git/parsers/stash.rb +292 -0
- data/lib/git/parsers/status.rb +251 -0
- data/lib/git/parsers/tag.rb +341 -0
- data/lib/git/parsers/worktree.rb +185 -0
- data/lib/git/path_resolver.rb +206 -0
- data/lib/git/remote.rb +165 -12
- data/lib/git/remote_info.rb +203 -0
- data/lib/git/repository/branching.rb +964 -0
- data/lib/git/repository/committing.rb +246 -0
- data/lib/git/repository/context_helpers.rb +293 -0
- data/lib/git/repository/diffing.rb +785 -0
- data/lib/git/repository/inspecting.rb +252 -0
- data/lib/git/repository/logging.rb +410 -0
- data/lib/git/repository/maintenance.rb +65 -0
- data/lib/git/repository/merging.rb +451 -0
- data/lib/git/repository/object_operations.rb +1551 -0
- data/lib/git/repository/remote_operations.rb +984 -0
- data/lib/git/repository/shared_private.rb +120 -0
- data/lib/git/repository/staging.rb +587 -0
- data/lib/git/repository/stashing.rb +623 -0
- data/lib/git/repository/status_operations.rb +249 -0
- data/lib/git/repository/worktree_operations.rb +339 -0
- data/lib/git/repository.rb +484 -2
- data/lib/git/stash.rb +109 -12
- data/lib/git/stash_info.rb +102 -0
- data/lib/git/stashes.rb +169 -26
- data/lib/git/status.rb +308 -122
- data/lib/git/status_file_info.rb +258 -0
- data/lib/git/status_info.rb +189 -0
- data/lib/git/tag_delete_failure.rb +34 -0
- data/lib/git/tag_delete_result.rb +66 -0
- data/lib/git/tag_info.rb +99 -0
- data/lib/git/url.rb +15 -8
- data/lib/git/version.rb +113 -2
- data/lib/git/version_constraint.rb +85 -0
- data/lib/git/worktree.rb +150 -8
- data/lib/git/worktree_info.rb +128 -0
- data/lib/git/worktrees.rb +118 -13
- data/lib/git.rb +632 -234
- metadata +369 -54
- data/.github/stale.yml +0 -25
- data/.github/workflows/continuous_integration.yml +0 -49
- data/.gitignore +0 -10
- data/Dockerfile.changelog-rs +0 -12
- data/Gemfile +0 -5
- data/ISSUE_TEMPLATE.md +0 -15
- data/PULL_REQUEST_TEMPLATE.md +0 -9
- data/RELEASING.md +0 -70
- data/Rakefile +0 -60
- data/lib/git/base/factory.rb +0 -99
- data/lib/git/base.rb +0 -711
- data/lib/git/command_line_result.rb +0 -86
- data/lib/git/failed_error.rb +0 -53
- data/lib/git/git_execute_error.rb +0 -7
- data/lib/git/index.rb +0 -5
- data/lib/git/lib.rb +0 -1328
- data/lib/git/path.rb +0 -31
- data/lib/git/signaled_error.rb +0 -50
- data/lib/git/working_directory.rb +0 -4
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Branch
|
|
8
|
+
# `git branch` command for creating new branches
|
|
9
|
+
#
|
|
10
|
+
# This command creates a new branch head pointing to the current HEAD
|
|
11
|
+
# or a specified start point.
|
|
12
|
+
#
|
|
13
|
+
# @example Basic branch creation
|
|
14
|
+
# create = Git::Commands::Branch::Create.new(execution_context)
|
|
15
|
+
# create.call('feature-branch')
|
|
16
|
+
#
|
|
17
|
+
# @example Create branch from a specific start point
|
|
18
|
+
# create = Git::Commands::Branch::Create.new(execution_context)
|
|
19
|
+
# create.call('feature-branch', 'main')
|
|
20
|
+
#
|
|
21
|
+
# @example Force create (reset existing branch)
|
|
22
|
+
# create = Git::Commands::Branch::Create.new(execution_context)
|
|
23
|
+
# create.call('feature-branch', 'main', force: true)
|
|
24
|
+
#
|
|
25
|
+
# @example Create with upstream tracking
|
|
26
|
+
# create = Git::Commands::Branch::Create.new(execution_context)
|
|
27
|
+
# create.call('feature-branch', 'origin/main', track: true)
|
|
28
|
+
#
|
|
29
|
+
# @example Create without upstream tracking
|
|
30
|
+
# create = Git::Commands::Branch::Create.new(execution_context)
|
|
31
|
+
# create.call('feature-branch', 'origin/main', no_track: true)
|
|
32
|
+
#
|
|
33
|
+
# @example Create with inherited tracking configuration
|
|
34
|
+
# create = Git::Commands::Branch::Create.new(execution_context)
|
|
35
|
+
# create.call('feature-branch', 'origin/main', track: 'inherit')
|
|
36
|
+
#
|
|
37
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-branch/2.53.0
|
|
38
|
+
#
|
|
39
|
+
# @see Git::Commands::Branch
|
|
40
|
+
#
|
|
41
|
+
# @see https://git-scm.com/docs/git-branch git-branch
|
|
42
|
+
#
|
|
43
|
+
# @api private
|
|
44
|
+
#
|
|
45
|
+
class Create < Git::Commands::Base
|
|
46
|
+
arguments do
|
|
47
|
+
literal 'branch'
|
|
48
|
+
flag_or_value_option %i[track t], negatable: true, inline: true
|
|
49
|
+
flag_option %i[force f]
|
|
50
|
+
flag_option :recurse_submodules
|
|
51
|
+
flag_option %i[quiet q]
|
|
52
|
+
flag_option :create_reflog, negatable: true
|
|
53
|
+
end_of_options
|
|
54
|
+
operand :branch_name, required: true
|
|
55
|
+
operand :start_point
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# @overload call(branch_name, **options)
|
|
59
|
+
#
|
|
60
|
+
# Create a new branch from the current HEAD
|
|
61
|
+
#
|
|
62
|
+
# @param branch_name [String] the name of the branch to create
|
|
63
|
+
#
|
|
64
|
+
# @param options [Hash] command options
|
|
65
|
+
#
|
|
66
|
+
# @option options [Boolean, String, nil] :track (nil) configure upstream tracking for
|
|
67
|
+
# the new branch
|
|
68
|
+
#
|
|
69
|
+
# - `true`: Set up tracking using the start-point branch itself (`--track`)
|
|
70
|
+
# - `'direct'`: Same as `true`, explicitly use start-point as upstream (`--track=direct`)
|
|
71
|
+
# - `'inherit'`: Copy upstream configuration from start-point branch (`--track=inherit`)
|
|
72
|
+
#
|
|
73
|
+
# Alias: :t
|
|
74
|
+
#
|
|
75
|
+
# @option options [Boolean, nil] :no_track (nil) do not set up tracking even if
|
|
76
|
+
# `branch.autoSetupMerge` is set (`--no-track`)
|
|
77
|
+
#
|
|
78
|
+
# @option options [Boolean, nil] :force (nil) reset the branch to start point even if
|
|
79
|
+
# it already exists
|
|
80
|
+
#
|
|
81
|
+
# Without this, git branch refuses to change an existing branch
|
|
82
|
+
#
|
|
83
|
+
# Alias: :f
|
|
84
|
+
#
|
|
85
|
+
# @option options [Boolean, nil] :recurse_submodules (nil) create the branch in the
|
|
86
|
+
# superproject and all submodules
|
|
87
|
+
#
|
|
88
|
+
# This is an experimental feature
|
|
89
|
+
#
|
|
90
|
+
# @option options [Boolean, nil] :quiet (nil) suppress informational messages
|
|
91
|
+
#
|
|
92
|
+
# Alias: :q
|
|
93
|
+
#
|
|
94
|
+
# @option options [Boolean, nil] :create_reflog (nil) create the branch's reflog
|
|
95
|
+
# (`--create-reflog`)
|
|
96
|
+
#
|
|
97
|
+
# Enables date-based sha1 expressions such as `branch@\\{yesterday}`
|
|
98
|
+
# In non-bare repositories, reflogs are usually enabled by default via
|
|
99
|
+
# `core.logAllRefUpdates`
|
|
100
|
+
#
|
|
101
|
+
# @option options [Boolean, nil] :no_create_reflog (nil) forcibly disable the
|
|
102
|
+
# branch's reflog (`--no-create-reflog`)
|
|
103
|
+
#
|
|
104
|
+
# @return [Git::CommandLine::Result] the result of calling `git branch`
|
|
105
|
+
#
|
|
106
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
107
|
+
#
|
|
108
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
109
|
+
#
|
|
110
|
+
# @api public
|
|
111
|
+
#
|
|
112
|
+
# @overload call(branch_name, start_point, **options)
|
|
113
|
+
#
|
|
114
|
+
# Create a new branch from the specified start point
|
|
115
|
+
#
|
|
116
|
+
# @param branch_name [String] the name of the branch to create
|
|
117
|
+
#
|
|
118
|
+
# @param start_point [String, nil] the commit, branch, or tag to
|
|
119
|
+
# start the new branch from
|
|
120
|
+
#
|
|
121
|
+
# Can also use `<rev-A>...<rev-B>` syntax for merge base
|
|
122
|
+
#
|
|
123
|
+
# @param options [Hash] command options
|
|
124
|
+
#
|
|
125
|
+
# @option options [Boolean, String, nil] :track (nil) configure upstream tracking for
|
|
126
|
+
# the new branch
|
|
127
|
+
#
|
|
128
|
+
# - `true`: Set up tracking using the start-point branch itself (`--track`)
|
|
129
|
+
# - `'direct'`: Same as `true`, explicitly use start-point as upstream (`--track=direct`)
|
|
130
|
+
# - `'inherit'`: Copy upstream configuration from start-point branch (`--track=inherit`)
|
|
131
|
+
#
|
|
132
|
+
# Alias: :t
|
|
133
|
+
#
|
|
134
|
+
# @option options [Boolean, nil] :no_track (nil) do not set up tracking even if
|
|
135
|
+
# `branch.autoSetupMerge` is set (`--no-track`)
|
|
136
|
+
#
|
|
137
|
+
# @option options [Boolean, nil] :force (nil) reset the branch to start point even if
|
|
138
|
+
# it already exists
|
|
139
|
+
#
|
|
140
|
+
# Without this, git branch refuses to change an existing branch
|
|
141
|
+
#
|
|
142
|
+
# Alias: :f
|
|
143
|
+
#
|
|
144
|
+
# @option options [Boolean, nil] :recurse_submodules (nil) create the branch in the
|
|
145
|
+
# superproject and all submodules
|
|
146
|
+
#
|
|
147
|
+
# This is an experimental feature
|
|
148
|
+
#
|
|
149
|
+
# @option options [Boolean, nil] :quiet (nil) suppress informational messages
|
|
150
|
+
#
|
|
151
|
+
# Alias: :q
|
|
152
|
+
#
|
|
153
|
+
# @option options [Boolean, nil] :create_reflog (nil) create the branch's reflog
|
|
154
|
+
# (`--create-reflog`)
|
|
155
|
+
#
|
|
156
|
+
# Enables date-based sha1 expressions such as `branch@\\{yesterday}`
|
|
157
|
+
# In non-bare repositories, reflogs are usually enabled by default via
|
|
158
|
+
# `core.logAllRefUpdates`
|
|
159
|
+
#
|
|
160
|
+
# @option options [Boolean, nil] :no_create_reflog (nil) forcibly disable the
|
|
161
|
+
# branch's reflog (`--no-create-reflog`)
|
|
162
|
+
#
|
|
163
|
+
# @return [Git::CommandLine::Result] the result of calling `git branch`
|
|
164
|
+
#
|
|
165
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
166
|
+
#
|
|
167
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
168
|
+
#
|
|
169
|
+
# @api public
|
|
170
|
+
#
|
|
171
|
+
def call(*, **)
|
|
172
|
+
super
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Branch
|
|
8
|
+
# Implements the `git branch --delete` command for deleting branches
|
|
9
|
+
#
|
|
10
|
+
# @example Delete a single branch
|
|
11
|
+
# delete = Git::Commands::Branch::Delete.new(execution_context)
|
|
12
|
+
# result = delete.call('feature-branch')
|
|
13
|
+
#
|
|
14
|
+
# @example Delete multiple branches
|
|
15
|
+
# delete = Git::Commands::Branch::Delete.new(execution_context)
|
|
16
|
+
# result = delete.call('branch1', 'branch2')
|
|
17
|
+
#
|
|
18
|
+
# @example Force delete (works even if not merged)
|
|
19
|
+
# delete = Git::Commands::Branch::Delete.new(execution_context)
|
|
20
|
+
# result = delete.call('feature-branch', force: true)
|
|
21
|
+
#
|
|
22
|
+
# @example Delete remote-tracking branch
|
|
23
|
+
# delete = Git::Commands::Branch::Delete.new(execution_context)
|
|
24
|
+
# result = delete.call('origin/feature', remotes: true)
|
|
25
|
+
#
|
|
26
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-branch/2.53.0
|
|
27
|
+
#
|
|
28
|
+
# @see Git::Commands::Branch
|
|
29
|
+
#
|
|
30
|
+
# @see https://git-scm.com/docs/git-branch git-branch
|
|
31
|
+
#
|
|
32
|
+
# @api private
|
|
33
|
+
#
|
|
34
|
+
class Delete < Git::Commands::Base
|
|
35
|
+
arguments do
|
|
36
|
+
literal 'branch'
|
|
37
|
+
literal '--delete'
|
|
38
|
+
flag_option %i[force f]
|
|
39
|
+
flag_option %i[remotes r]
|
|
40
|
+
|
|
41
|
+
end_of_options
|
|
42
|
+
|
|
43
|
+
operand :branch_name, repeatable: true, required: true
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# git branch --delete exits 1 when one or more branches cannot be deleted
|
|
47
|
+
allow_exit_status 0..1
|
|
48
|
+
|
|
49
|
+
# Executes the git branch --delete command to delete branches
|
|
50
|
+
#
|
|
51
|
+
# @overload call(*branch_name, **options)
|
|
52
|
+
#
|
|
53
|
+
# @param branch_name [Array<String>] one or more branch names to delete
|
|
54
|
+
#
|
|
55
|
+
# @param options [Hash] command options
|
|
56
|
+
#
|
|
57
|
+
# @option options [Boolean, nil] :force (nil) allow deleting the branch irrespective of
|
|
58
|
+
# its merged status, or whether it even points to a valid commit
|
|
59
|
+
#
|
|
60
|
+
# Equivalent to the `-D` shortcut (`--delete --force`)
|
|
61
|
+
#
|
|
62
|
+
# Alias: :f
|
|
63
|
+
#
|
|
64
|
+
# @option options [Boolean, nil] :remotes (nil) delete remote-tracking branches
|
|
65
|
+
#
|
|
66
|
+
# Use this together with `--delete` to remove remote-tracking branches that no
|
|
67
|
+
# longer exist in the remote repository, or if `git fetch` was configured not to
|
|
68
|
+
# fetch them again
|
|
69
|
+
#
|
|
70
|
+
# Alias: :r
|
|
71
|
+
#
|
|
72
|
+
# @return [Git::CommandLine::Result] the result of calling `git branch --delete`
|
|
73
|
+
#
|
|
74
|
+
# @raise [ArgumentError] if no branch names are provided
|
|
75
|
+
#
|
|
76
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
77
|
+
#
|
|
78
|
+
# @raise [Git::FailedError] if git exits outside the allowed range (exit code > 1)
|
|
79
|
+
#
|
|
80
|
+
# @api public
|
|
81
|
+
#
|
|
82
|
+
def call(*, **)
|
|
83
|
+
super
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Branch
|
|
8
|
+
# Implements the `git branch --list` command
|
|
9
|
+
#
|
|
10
|
+
# @example Basic branch listing
|
|
11
|
+
# list = Git::Commands::Branch::List.new(execution_context)
|
|
12
|
+
# branches = list.call
|
|
13
|
+
#
|
|
14
|
+
# @example List all branches (local and remote)
|
|
15
|
+
# list = Git::Commands::Branch::List.new(execution_context)
|
|
16
|
+
# all_branches = list.call(all: true)
|
|
17
|
+
#
|
|
18
|
+
# @example List branches containing a commit
|
|
19
|
+
# list = Git::Commands::Branch::List.new(execution_context)
|
|
20
|
+
# branches = list.call(contains: 'abc123')
|
|
21
|
+
#
|
|
22
|
+
# @example List branches with patterns
|
|
23
|
+
# list = Git::Commands::Branch::List.new(execution_context)
|
|
24
|
+
# feature_branches = list.call('feature/*')
|
|
25
|
+
#
|
|
26
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-branch/2.53.0
|
|
27
|
+
#
|
|
28
|
+
# @see Git::Commands::Branch
|
|
29
|
+
#
|
|
30
|
+
# @see https://git-scm.com/docs/git-branch git-branch
|
|
31
|
+
#
|
|
32
|
+
# @api private
|
|
33
|
+
#
|
|
34
|
+
class List < Git::Commands::Base
|
|
35
|
+
arguments do
|
|
36
|
+
literal 'branch'
|
|
37
|
+
literal '--list'
|
|
38
|
+
|
|
39
|
+
flag_or_value_option :color, inline: true, negatable: true
|
|
40
|
+
flag_option %i[verbose v], max_times: 2
|
|
41
|
+
flag_or_value_option :abbrev, inline: true, negatable: true
|
|
42
|
+
flag_or_value_option :column, inline: true, negatable: true
|
|
43
|
+
value_option :sort, inline: true, repeatable: true
|
|
44
|
+
flag_or_value_option :merged
|
|
45
|
+
flag_or_value_option :no_merged
|
|
46
|
+
flag_or_value_option :contains
|
|
47
|
+
flag_or_value_option :no_contains
|
|
48
|
+
value_option :points_at
|
|
49
|
+
value_option :format, inline: true
|
|
50
|
+
flag_option %i[remotes r]
|
|
51
|
+
flag_option %i[all a]
|
|
52
|
+
flag_option %i[ignore_case i]
|
|
53
|
+
flag_option :omit_empty
|
|
54
|
+
|
|
55
|
+
end_of_options
|
|
56
|
+
|
|
57
|
+
operand :pattern, repeatable: true
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# @overload call(*pattern, **options)
|
|
61
|
+
#
|
|
62
|
+
# Execute the `git branch --list` command
|
|
63
|
+
#
|
|
64
|
+
# @param pattern [Array<String>] shell wildcard patterns to filter branches
|
|
65
|
+
#
|
|
66
|
+
# If multiple patterns are given, a branch is shown if it matches any
|
|
67
|
+
# of the patterns
|
|
68
|
+
#
|
|
69
|
+
# @param options [Hash] command options
|
|
70
|
+
#
|
|
71
|
+
# @option options [Boolean, String, nil] :color (nil) color branches output
|
|
72
|
+
#
|
|
73
|
+
# Pass `true` for `--color` or a string (`'always'`, `'never'`,
|
|
74
|
+
# `'auto'`) for `--color=<when>`
|
|
75
|
+
#
|
|
76
|
+
# @option options [Boolean, nil] :no_color (nil) suppress colored output
|
|
77
|
+
# (`--no-color`)
|
|
78
|
+
#
|
|
79
|
+
# @option options [Boolean, Integer, nil] :verbose (nil) show sha1 and
|
|
80
|
+
# commit subject for each branch
|
|
81
|
+
#
|
|
82
|
+
# Pass `true` for `--verbose` (show sha1 and subject); pass `2` for
|
|
83
|
+
# `--verbose --verbose` (also show the linked worktree path and
|
|
84
|
+
# upstream branch name)
|
|
85
|
+
#
|
|
86
|
+
# Alias: :v
|
|
87
|
+
#
|
|
88
|
+
# @option options [Boolean, Integer, nil] :abbrev (nil) minimum sha1
|
|
89
|
+
# display length when used with verbose mode
|
|
90
|
+
#
|
|
91
|
+
# Pass an integer for `--abbrev=<n>` or `true` for `--abbrev`
|
|
92
|
+
# (default length)
|
|
93
|
+
#
|
|
94
|
+
# @option options [Boolean, nil] :no_abbrev (nil) show full sha1s
|
|
95
|
+
# (`--no-abbrev`)
|
|
96
|
+
#
|
|
97
|
+
# @option options [Boolean, String, nil] :column (nil) display branch
|
|
98
|
+
# listing in columns
|
|
99
|
+
#
|
|
100
|
+
# Pass `true` for `--column` or a string of options for
|
|
101
|
+
# `--column=<options>`
|
|
102
|
+
#
|
|
103
|
+
# Only applicable in non-verbose mode
|
|
104
|
+
#
|
|
105
|
+
# @option options [Boolean, nil] :no_column (nil) disable column output
|
|
106
|
+
# (`--no-column`)
|
|
107
|
+
#
|
|
108
|
+
# @option options [String, Array<String>] :sort (nil) sort branches by
|
|
109
|
+
# the specified key(s)
|
|
110
|
+
#
|
|
111
|
+
# Give an array to add multiple --sort options
|
|
112
|
+
# Prefix each key with '-' for descending order
|
|
113
|
+
# For example, sort: ['refname', '-committerdate']
|
|
114
|
+
#
|
|
115
|
+
# @option options [Boolean, String, nil] :merged (nil) list only branches
|
|
116
|
+
# merged into the specified commit
|
|
117
|
+
#
|
|
118
|
+
# Pass `true` to default to HEAD or a commit ref string to filter by
|
|
119
|
+
# that commit
|
|
120
|
+
#
|
|
121
|
+
# @option options [Boolean, String, nil] :no_merged (nil) list only
|
|
122
|
+
# branches not merged into the specified commit
|
|
123
|
+
#
|
|
124
|
+
# Pass `true` to default to HEAD or a commit ref string to filter by
|
|
125
|
+
# that commit
|
|
126
|
+
#
|
|
127
|
+
# @option options [Boolean, String, nil] :contains (nil) list only
|
|
128
|
+
# branches that contain the specified commit
|
|
129
|
+
#
|
|
130
|
+
# Pass `true` to default to HEAD or a commit ref string to filter by
|
|
131
|
+
# that commit
|
|
132
|
+
#
|
|
133
|
+
# @option options [Boolean, String, nil] :no_contains (nil) list only
|
|
134
|
+
# branches that don't contain the specified commit
|
|
135
|
+
#
|
|
136
|
+
# Pass `true` to default to HEAD or a commit ref string to filter by
|
|
137
|
+
# that commit
|
|
138
|
+
#
|
|
139
|
+
# @option options [String] :points_at (nil) list only branches that
|
|
140
|
+
# point at the specified object
|
|
141
|
+
#
|
|
142
|
+
# @option options [String] :format (nil) output format string for each
|
|
143
|
+
# branch
|
|
144
|
+
#
|
|
145
|
+
# @option options [Boolean, nil] :remotes (nil) list only remote-tracking
|
|
146
|
+
# branches
|
|
147
|
+
#
|
|
148
|
+
# Alias: :r
|
|
149
|
+
#
|
|
150
|
+
# @option options [Boolean, nil] :all (nil) list both local and remote
|
|
151
|
+
# branches
|
|
152
|
+
#
|
|
153
|
+
# Alias: :a
|
|
154
|
+
#
|
|
155
|
+
# @option options [Boolean, nil] :ignore_case (nil) sort and filter
|
|
156
|
+
# branches case insensitively
|
|
157
|
+
#
|
|
158
|
+
# Alias: :i
|
|
159
|
+
#
|
|
160
|
+
# @option options [Boolean, nil] :omit_empty (nil) do not print a
|
|
161
|
+
# newline after formatted refs where the format expands to the empty
|
|
162
|
+
# string
|
|
163
|
+
#
|
|
164
|
+
# @return [Git::CommandLine::Result] the result of calling `git branch --list`
|
|
165
|
+
#
|
|
166
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
167
|
+
#
|
|
168
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
169
|
+
#
|
|
170
|
+
# @api public
|
|
171
|
+
#
|
|
172
|
+
def call(*, **)
|
|
173
|
+
super
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
end
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Branch
|
|
8
|
+
# Implements the `git branch --move` command for renaming branches
|
|
9
|
+
#
|
|
10
|
+
# This command moves/renames a branch, together with its config and reflog.
|
|
11
|
+
# If the old branch name is omitted, renames the current branch.
|
|
12
|
+
#
|
|
13
|
+
# @example Rename the current branch
|
|
14
|
+
# move = Git::Commands::Branch::Move.new(execution_context)
|
|
15
|
+
# move.call('new-branch-name')
|
|
16
|
+
#
|
|
17
|
+
# @example Rename a specific branch
|
|
18
|
+
# move = Git::Commands::Branch::Move.new(execution_context)
|
|
19
|
+
# move.call('old-branch-name', 'new-branch-name')
|
|
20
|
+
#
|
|
21
|
+
# @example Force rename (overwrite existing branch)
|
|
22
|
+
# move = Git::Commands::Branch::Move.new(execution_context)
|
|
23
|
+
# move.call('old-branch', 'existing-branch', force: true)
|
|
24
|
+
#
|
|
25
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-branch/2.53.0
|
|
26
|
+
#
|
|
27
|
+
# @see Git::Commands::Branch
|
|
28
|
+
#
|
|
29
|
+
# @see https://git-scm.com/docs/git-branch git-branch
|
|
30
|
+
#
|
|
31
|
+
# @api private
|
|
32
|
+
#
|
|
33
|
+
class Move < Git::Commands::Base
|
|
34
|
+
# NOTE: The positional arguments follow Ruby semantics:
|
|
35
|
+
# - When one positional is provided, it fills new_branch (required)
|
|
36
|
+
# - When two positionals are provided, they fill old_branch and new_branch
|
|
37
|
+
#
|
|
38
|
+
# This matches the git CLI: `git branch -m [<old-branch>] <new-branch>`
|
|
39
|
+
arguments do
|
|
40
|
+
literal 'branch'
|
|
41
|
+
literal '--move'
|
|
42
|
+
flag_option %i[force f]
|
|
43
|
+
|
|
44
|
+
end_of_options
|
|
45
|
+
|
|
46
|
+
operand :old_branch
|
|
47
|
+
operand :new_branch, required: true
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Executes the git branch --move command to rename a branch
|
|
51
|
+
#
|
|
52
|
+
# @overload call(new_branch, **options)
|
|
53
|
+
#
|
|
54
|
+
# Rename the current branch to new_branch
|
|
55
|
+
#
|
|
56
|
+
# @param new_branch [String] the new name for the branch
|
|
57
|
+
#
|
|
58
|
+
# @param options [Hash] command options
|
|
59
|
+
#
|
|
60
|
+
# @option options [Boolean, nil] :force (nil) allow renaming even if new_branch already
|
|
61
|
+
# exists
|
|
62
|
+
#
|
|
63
|
+
# Alias: :f
|
|
64
|
+
#
|
|
65
|
+
# @return [Git::CommandLine::Result] the result of calling `git branch --move`
|
|
66
|
+
#
|
|
67
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
68
|
+
#
|
|
69
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
70
|
+
#
|
|
71
|
+
# @api public
|
|
72
|
+
#
|
|
73
|
+
# @overload call(old_branch, new_branch, **options)
|
|
74
|
+
#
|
|
75
|
+
# Rename old_branch to new_branch
|
|
76
|
+
#
|
|
77
|
+
# @param old_branch [String] the current name of the branch
|
|
78
|
+
#
|
|
79
|
+
# @param new_branch [String] the new name for the branch
|
|
80
|
+
#
|
|
81
|
+
# @param options [Hash] command options
|
|
82
|
+
#
|
|
83
|
+
# @option options [Boolean, nil] :force (nil) allow renaming even if new_branch already
|
|
84
|
+
# exists
|
|
85
|
+
#
|
|
86
|
+
# Alias: :f
|
|
87
|
+
#
|
|
88
|
+
# @return [Git::CommandLine::Result] the result of calling `git branch --move`
|
|
89
|
+
#
|
|
90
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
91
|
+
#
|
|
92
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
93
|
+
#
|
|
94
|
+
# @api public
|
|
95
|
+
#
|
|
96
|
+
def call(*, **)
|
|
97
|
+
super
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Branch
|
|
8
|
+
# Implements the `git branch --set-upstream-to` command for configuring upstream tracking
|
|
9
|
+
#
|
|
10
|
+
# This command sets up tracking information so the specified upstream branch is considered
|
|
11
|
+
# the upstream for the given branch (or current branch if not specified).
|
|
12
|
+
#
|
|
13
|
+
# @example Set upstream for current branch
|
|
14
|
+
# set_upstream = Git::Commands::Branch::SetUpstream.new(execution_context)
|
|
15
|
+
# set_upstream.call(set_upstream_to: 'origin/main')
|
|
16
|
+
#
|
|
17
|
+
# @example Set upstream for a specific branch
|
|
18
|
+
# set_upstream = Git::Commands::Branch::SetUpstream.new(execution_context)
|
|
19
|
+
# set_upstream.call('feature', set_upstream_to: 'origin/main')
|
|
20
|
+
#
|
|
21
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-branch/2.53.0
|
|
22
|
+
#
|
|
23
|
+
# @see Git::Commands::Branch
|
|
24
|
+
#
|
|
25
|
+
# @see https://git-scm.com/docs/git-branch git-branch
|
|
26
|
+
#
|
|
27
|
+
# @api private
|
|
28
|
+
#
|
|
29
|
+
class SetUpstream < Git::Commands::Base
|
|
30
|
+
# NOTE: The set_upstream_to option maps to git's --set-upstream-to=<upstream> syntax.
|
|
31
|
+
# The branch_name positional is optional; if omitted, git uses the current branch.
|
|
32
|
+
# The set_upstream_to keyword is required by the Ruby method signature, not the DSL.
|
|
33
|
+
arguments do
|
|
34
|
+
literal 'branch'
|
|
35
|
+
value_option %i[set_upstream_to u], inline: true, required: true, allow_nil: false
|
|
36
|
+
|
|
37
|
+
end_of_options
|
|
38
|
+
|
|
39
|
+
operand :branch_name
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# @!method call(*)
|
|
43
|
+
#
|
|
44
|
+
# @overload call(**options)
|
|
45
|
+
#
|
|
46
|
+
# Set upstream for the current branch
|
|
47
|
+
#
|
|
48
|
+
# @param options [Hash] command options
|
|
49
|
+
#
|
|
50
|
+
# @option options [String] :set_upstream_to (required)
|
|
51
|
+
# upstream branch to set (e.g., `origin/main`)
|
|
52
|
+
#
|
|
53
|
+
# Alias: :u
|
|
54
|
+
#
|
|
55
|
+
# @return [Git::CommandLine::Result] the result of calling `git branch --set-upstream-to`
|
|
56
|
+
#
|
|
57
|
+
# @raise [ArgumentError] if set_upstream_to is not provided
|
|
58
|
+
#
|
|
59
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
60
|
+
#
|
|
61
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
62
|
+
#
|
|
63
|
+
# @overload call(branch_name, **options)
|
|
64
|
+
#
|
|
65
|
+
# Set upstream for the specified branch
|
|
66
|
+
#
|
|
67
|
+
# @param branch_name [String] the branch to set upstream for
|
|
68
|
+
#
|
|
69
|
+
# @param options [Hash] command options
|
|
70
|
+
#
|
|
71
|
+
# @option options [String] :set_upstream_to (required)
|
|
72
|
+
# upstream branch to set (e.g., `origin/main`)
|
|
73
|
+
#
|
|
74
|
+
# Alias: :u
|
|
75
|
+
#
|
|
76
|
+
# @return [Git::CommandLine::Result] the result of calling `git branch --set-upstream-to`
|
|
77
|
+
#
|
|
78
|
+
# @raise [ArgumentError] if set_upstream_to is not provided
|
|
79
|
+
#
|
|
80
|
+
# @raise [ArgumentError] if unsupported options are provided
|
|
81
|
+
#
|
|
82
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'git/commands/base'
|
|
4
|
+
|
|
5
|
+
module Git
|
|
6
|
+
module Commands
|
|
7
|
+
module Branch
|
|
8
|
+
# Implements the `git branch --show-current` command
|
|
9
|
+
#
|
|
10
|
+
# Prints the name of the current branch. In detached HEAD state, nothing
|
|
11
|
+
# is printed.
|
|
12
|
+
#
|
|
13
|
+
# @example Print the current branch name
|
|
14
|
+
# show_current = Git::Commands::Branch::ShowCurrent.new(execution_context)
|
|
15
|
+
# result = show_current.call
|
|
16
|
+
# puts result.stdout # => "main\n"
|
|
17
|
+
#
|
|
18
|
+
# @example Check for detached HEAD state
|
|
19
|
+
# show_current = Git::Commands::Branch::ShowCurrent.new(execution_context)
|
|
20
|
+
# result = show_current.call
|
|
21
|
+
# # result.stdout is empty ("") when in detached HEAD state
|
|
22
|
+
#
|
|
23
|
+
# @note `arguments` block audited against https://git-scm.com/docs/git-branch/2.53.0
|
|
24
|
+
#
|
|
25
|
+
# @see Git::Commands::Branch
|
|
26
|
+
#
|
|
27
|
+
# @see https://git-scm.com/docs/git-branch git-branch
|
|
28
|
+
#
|
|
29
|
+
# @api private
|
|
30
|
+
#
|
|
31
|
+
class ShowCurrent < Git::Commands::Base
|
|
32
|
+
arguments do
|
|
33
|
+
literal 'branch'
|
|
34
|
+
literal '--show-current'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# @!method call(*)
|
|
38
|
+
#
|
|
39
|
+
# @overload call()
|
|
40
|
+
#
|
|
41
|
+
# Execute the `git branch --show-current` command
|
|
42
|
+
#
|
|
43
|
+
# @return [Git::CommandLine::Result] the result of calling `git branch --show-current`
|
|
44
|
+
#
|
|
45
|
+
# @raise [Git::FailedError] if git exits with a non-zero exit status
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|