Module: Git

Extended by:
Configuring, Repository::Factories
Defined in:
lib/git.rb,
lib/git.rb,
lib/git/log.rb,
lib/git/url.rb,
lib/git/diff.rb,
lib/git/stash.rb,
lib/git/author.rb,
lib/git/branch.rb,
lib/git/config.rb,
lib/git/errors.rb,
lib/git/object.rb,
lib/git/remote.rb,
lib/git/status.rb,
lib/git/status.rb,
lib/git/status.rb,
lib/git/stashes.rb,
lib/git/version.rb,
lib/git/branches.rb,
lib/git/commands.rb,
lib/git/file_ref.rb,
lib/git/tag_info.rb,
lib/git/worktree.rb,
lib/git/diff_info.rb,
lib/git/worktrees.rb,
lib/git/diff_stats.rb,
lib/git/repository.rb,
lib/git/stash_info.rb,
lib/git/branch_info.rb,
lib/git/commands/am.rb,
lib/git/commands/gc.rb,
lib/git/commands/mv.rb,
lib/git/commands/rm.rb,
lib/git/configuring.rb,
lib/git/diff_result.rb,
lib/git/fsck_object.rb,
lib/git/fsck_result.rb,
lib/git/parsers/tag.rb,
lib/git/command_line.rb,
lib/git/commands/add.rb,
lib/git/commands/log.rb,
lib/git/commands/tag.rb,
lib/git/dirstat_info.rb,
lib/git/escaped_path.rb,
lib/git/parsers/diff.rb,
lib/git/parsers/fsck.rb,
lib/git/parsers/grep.rb,
lib/git/commands/base.rb,
lib/git/commands/diff.rb,
lib/git/commands/fsck.rb,
lib/git/commands/grep.rb,
lib/git/commands/init.rb,
lib/git/commands/pull.rb,
lib/git/commands/push.rb,
lib/git/commands/show.rb,
lib/git/parsers/stash.rb,
lib/git/commands/apply.rb,
lib/git/commands/clean.rb,
lib/git/commands/clone.rb,
lib/git/commands/fetch.rb,
lib/git/commands/merge.rb,
lib/git/commands/reset.rb,
lib/git/commands/stash.rb,
lib/git/encoding_utils.rb,
lib/git/parsers/branch.rb,
lib/git/commands/branch.rb,
lib/git/commands/commit.rb,
lib/git/commands/remote.rb,
lib/git/commands/repack.rb,
lib/git/commands/revert.rb,
lib/git/commands/status.rb,
lib/git/parsers/ls_tree.rb,
lib/git/commands/am/quit.rb,
lib/git/commands/am/skip.rb,
lib/git/commands/archive.rb,
lib/git/commands/ls_tree.rb,
lib/git/commands/version.rb,
lib/git/diff_path_status.rb,
lib/git/parsers/cat_file.rb,
lib/git/command_line/base.rb,
lib/git/commands/am/abort.rb,
lib/git/commands/am/apply.rb,
lib/git/commands/am/retry.rb,
lib/git/commands/cat_file.rb,
lib/git/commands/checkout.rb,
lib/git/commands/describe.rb,
lib/git/commands/ls_files.rb,
lib/git/commands/name_rev.rb,
lib/git/commands/show_ref.rb,
lib/git/commands/tag/list.rb,
lib/git/commands/worktree.rb,
lib/git/config_entry_info.rb,
lib/git/execution_context.rb,
lib/git/parsers/ls_remote.rb,
lib/git/tag_delete_result.rb,
lib/git/commands/arguments.rb,
lib/git/commands/ls_remote.rb,
lib/git/commands/read_tree.rb,
lib/git/commands/rev_parse.rb,
lib/git/commands/stash/pop.rb,
lib/git/detached_head_info.rb,
lib/git/diff_file_raw_info.rb,
lib/git/repository/diffing.rb,
lib/git/repository/logging.rb,
lib/git/repository/merging.rb,
lib/git/repository/staging.rb,
lib/git/tag_delete_failure.rb,
lib/git/version_constraint.rb,
lib/git/command_line/result.rb,
lib/git/commands/diff_files.rb,
lib/git/commands/diff_index.rb,
lib/git/commands/merge/quit.rb,
lib/git/commands/merge_base.rb,
lib/git/commands/remote/add.rb,
lib/git/commands/stash/drop.rb,
lib/git/commands/stash/list.rb,
lib/git/commands/stash/push.rb,
lib/git/commands/stash/show.rb,
lib/git/commands/tag/create.rb,
lib/git/commands/tag/delete.rb,
lib/git/commands/tag/verify.rb,
lib/git/commands/update_ref.rb,
lib/git/commands/write_tree.rb,
lib/git/repository/stashing.rb,
lib/git/branch_delete_result.rb,
lib/git/commands/am/continue.rb,
lib/git/commands/branch/copy.rb,
lib/git/commands/branch/list.rb,
lib/git/commands/branch/move.rb,
lib/git/commands/commit_tree.rb,
lib/git/commands/maintenance.rb,
lib/git/commands/merge/abort.rb,
lib/git/commands/merge/start.rb,
lib/git/commands/remote/list.rb,
lib/git/commands/remote/show.rb,
lib/git/commands/revert/quit.rb,
lib/git/commands/revert/skip.rb,
lib/git/commands/stash/apply.rb,
lib/git/commands/stash/clear.rb,
lib/git/commands/stash/store.rb,
lib/git/diff_file_patch_info.rb,
lib/git/parsers/config_entry.rb,
lib/git/repository/branching.rb,
lib/git/repository/factories.rb,
lib/git/branch_delete_failure.rb,
lib/git/commands/cat_file/raw.rb,
lib/git/commands/remote/prune.rb,
lib/git/commands/revert/abort.rb,
lib/git/commands/revert/start.rb,
lib/git/commands/stash/branch.rb,
lib/git/commands/stash/create.rb,
lib/git/commands/symbolic_ref.rb,
lib/git/commands/worktree/add.rb,
lib/git/repository/committing.rb,
lib/git/repository/inspecting.rb,
lib/git/command_line/capturing.rb,
lib/git/command_line/streaming.rb,
lib/git/commands/branch/create.rb,
lib/git/commands/branch/delete.rb,
lib/git/commands/remote/remove.rb,
lib/git/commands/remote/rename.rb,
lib/git/commands/remote/update.rb,
lib/git/commands/show_ref/list.rb,
lib/git/commands/worktree/list.rb,
lib/git/commands/worktree/lock.rb,
lib/git/commands/worktree/move.rb,
lib/git/diff_file_numstat_info.rb,
lib/git/repository/maintenance.rb,
lib/git/commands/cat_file/batch.rb,
lib/git/commands/checkout/files.rb,
lib/git/commands/checkout_index.rb,
lib/git/commands/merge/continue.rb,
lib/git/commands/remote/get_url.rb,
lib/git/commands/remote/set_url.rb,
lib/git/commands/worktree/prune.rb,
lib/git/commands/checkout/branch.rb,
lib/git/commands/maintenance/run.rb,
lib/git/commands/remote/set_head.rb,
lib/git/commands/revert/continue.rb,
lib/git/commands/show_ref/exists.rb,
lib/git/commands/show_ref/verify.rb,
lib/git/commands/worktree/remove.rb,
lib/git/commands/worktree/repair.rb,
lib/git/commands/worktree/unlock.rb,
lib/git/execution_context/global.rb,
lib/git/repository/path_resolver.rb,
lib/git/commands/maintenance/stop.rb,
lib/git/commands/update_ref/batch.rb,
lib/git/repository/shared_private.rb,
lib/git/commands/cat_file/filtered.rb,
lib/git/commands/maintenance/start.rb,
lib/git/commands/symbolic_ref/read.rb,
lib/git/commands/update_ref/delete.rb,
lib/git/commands/update_ref/update.rb,
lib/git/repository/context_helpers.rb,
lib/git/commands/remote/set_url_add.rb,
lib/git/commands/branch/set_upstream.rb,
lib/git/commands/branch/show_current.rb,
lib/git/commands/remote/set_branches.rb,
lib/git/commands/symbolic_ref/delete.rb,
lib/git/commands/symbolic_ref/update.rb,
lib/git/execution_context/repository.rb,
lib/git/repository/object_operations.rb,
lib/git/repository/remote_operations.rb,
lib/git/repository/status_operations.rb,
lib/git/commands/archive/list_formats.rb,
lib/git/commands/config_option_syntax.rb,
lib/git/commands/maintenance/register.rb,
lib/git/commands/am/show_current_patch.rb,
lib/git/commands/branch/unset_upstream.rb,
lib/git/commands/remote/set_url_delete.rb,
lib/git/repository/worktree_operations.rb,
lib/git/commands/maintenance/unregister.rb,
lib/git/commands/config_option_syntax/add.rb,
lib/git/commands/config_option_syntax/get.rb,
lib/git/commands/config_option_syntax/set.rb,
lib/git/commands/worktree/management_base.rb,
lib/git/commands/config_option_syntax/list.rb,
lib/git/commands/show_ref/exclude_existing.rb,
lib/git/commands/config_option_syntax/unset.rb,
lib/git/commands/config_option_syntax/get_all.rb,
lib/git/commands/config_option_syntax/get_color.rb,
lib/git/commands/config_option_syntax/unset_all.rb,
lib/git/commands/config_option_syntax/get_regexp.rb,
lib/git/commands/config_option_syntax/replace_all.rb,
lib/git/commands/config_option_syntax/get_urlmatch.rb,
lib/git/commands/config_option_syntax/get_color_bool.rb,
lib/git/commands/config_option_syntax/remove_section.rb,
lib/git/commands/config_option_syntax/rename_section.rb

Overview

The Git module provides the basic functions to open a git reference to work with. You can open a working directory, open a bare repository, initialize a new repo or clone an existing remote repository.

Defined Under Namespace

Modules: CommandLine, Commands, Configuring, EncodingUtils, Parsers Classes: Author, Branch, BranchDeleteFailure, BranchDeleteResult, BranchInfo, Branches, CommandLineError, Config, ConfigEntryInfo, DetachedHeadInfo, Diff, DiffFileNumstatInfo, DiffFilePatchInfo, DiffFileRawInfo, DiffInfo, DiffPathStatus, DiffResult, DiffStats, DirstatEntry, DirstatInfo, Error, EscapedPath, ExecutionContext, FailedError, FileDiffInfo, FileRef, FsckObject, FsckResult, GitAltURI, Log, Object, ProcessIOError, Remote, Repository, SignaledError, Stash, StashInfo, Stashes, Status, TagDeleteFailure, TagDeleteResult, TagInfo, TimeoutError, URL, UnexpectedResultError, Version, VersionConstraint, VersionError, Worktree, Worktrees

Constant Summary collapse

Deprecation =

The deprecation instance used to emit deprecation warnings for the Git gem

ActiveSupport::Deprecation.new('6.0.0', 'Git')
MINIMUM_GIT_VERSION =

Minimum git version required by this gem

Commands and features may require newer versions, but this is the absolute minimum supported version for the gem as a whole.

Returns:

Version.parse('2.28.0')
GitExecuteError =
Deprecated.

Use Git::Error instead

An alias for Git::Error

Git::GitExecuteError error class is an alias for Git::Error for backwards compatibility. It is recommended to use Git::Error directly.

ActiveSupport::Deprecation::DeprecatedConstantProxy.new('Git::GitExecuteError', 'Git::Error', Git::Deprecation)
VERSION =

The current gem version

Returns:

  • (String)

    the current gem version

'5.0.0.beta.4'
BRANCH_REFNAME_REGEXP =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Note:

This regex is similar to Git::Branch::BRANCH_NAME_REGEXP but uses \A/\z anchors instead of ^/$ for stricter matching. As part of the architectural redesign, Git::Branch will eventually be refactored to use BranchInfo internally, at which point this will become the single source of truth for branch name parsing.

Note:

This regex assumes remote names do not contain '/'. If a remote name contains '/', parsing will be incorrect. For example, 'remotes/team/upstream/main' would parse as remote_name='team' instead of 'team/upstream'. This is an inherent ambiguity in git refnames that can only be resolved with knowledge of configured remotes. See: https://github.com/ruby-git/ruby-git/issues/919

Regular expression for parsing branch refnames

Captures:

  • remote_name: the remote name (e.g., 'origin') for remote branches, nil for local
  • branch_name: the branch name without the remote prefix

Examples:

Parse branch refnames

'main' => { remote_name: nil, branch_name: 'main' }
'remotes/origin/main' => { remote_name: 'origin', branch_name: 'main' }
'feature/foo' => { remote_name: nil, branch_name: 'feature/foo' }
'remotes/origin/feature/bar' => { remote_name: 'origin', branch_name: 'feature/bar' }
%r{
  \A                              # start of string
  (?:(?:refs/)?remotes/(?<remote_name>[^/]+)/)? # optional 'refs?/remotes/<remote_name>/'
  (?<branch_name>.+)                   # branch name (everything else)
  \z                              # end of string
}x

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.binary_version(binary_path = nil) ⇒ Array<Integer>

Deprecated.

Use git_version instead, which returns a Version (not an Array)

For the legacy array shape, call: Git.git_version.to_a. The optional binary_path argument is preserved: Git.git_version(binary_path).

Return the version of the git binary

Examples:

Basic usage

Git.binary_version  # => [2, 46, 0]

Parameters:

  • binary_path (String, nil) (defaults to: nil)

    path to the git binary; defaults to Git::Config.instance.binary_path

Returns:

  • (Array<Integer>)

    the version of the git binary



714
715
716
717
718
719
720
721
722
723
# File 'lib/git.rb', line 714

def self.binary_version(binary_path = nil)
  binary_path ||= Git::Config.instance.binary_path
  Git::Deprecation.warn(
    'Git.binary_version is deprecated and will be removed in 6.0. ' \
    'Use Git.git_version instead, which returns a Git::Version ' \
    '(not an Array). For the legacy array shape, call: Git.git_version.to_a. ' \
    'The optional binary_path argument is preserved: Git.git_version(binary_path).'
  )
  git_version(binary_path).to_a
end

.cached_git_version(binary_path) { ... } ⇒ Git::Version

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return the cached git version for the given binary path

If it isn't already known, compute it using the given block.

Parameters:

  • binary_path (String)

    the path to the git binary

Yields:

  • [] compute the git version if it is not cached

Yield Returns:

Returns:



478
479
480
481
482
# File 'lib/git.rb', line 478

def self.cached_git_version(binary_path, &block)
  @git_version_cache_mutex.synchronize do
    @git_version_cache[binary_path] ||= block.call
  end
end

.clear_git_version_cache

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Clear the cached git version for all binary paths



489
490
491
492
493
# File 'lib/git.rb', line 489

def self.clear_git_version_cache
  @git_version_cache_mutex.synchronize do
    @git_version_cache.clear
  end
end

.configGit::Config

Returns the process-wide Config singleton

Examples:

Read the configured binary path

Git.config.binary_path  #=> "git"

Returns:



196
197
198
# File 'lib/git.rb', line 196

def self.config
  Git::Config.instance
end

.configure {|config| ... }

This method returns an undefined value.

Configures the gem by yielding Git::Config.instance to the block

Examples:

Set the global git binary path

Git.configure { |c| c.binary_path = '/usr/local/bin/git' }

Yields:

  • (config)

    yields the singleton config object

Yield Parameters:

Yield Returns:

  • (void)


184
185
186
187
# File 'lib/git.rb', line 184

def self.configure
  yield Git::Config.instance
  nil
end

.const_missing(name) ⇒ Class

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Intercept the first lookup of the deprecated Git::CommandLineResult constant

When name is :CommandLineResult, caches and returns Git::CommandLine::Result after emitting a deprecation warning. Calls super for any other unknown constant, preserving normal Ruby NameError behavior.

Parameters:

  • name (Symbol)

    the name of the missing constant

Returns:

  • (Class)

    the resolved constant value



124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/git.rb', line 124

def self.const_missing(name)
  return super unless name == :CommandLineResult

  # Cache the constant first so subsequent accesses are zero-cost even if
  # the deprecation behavior raises (e.g. in the test suite).
  const_set(:CommandLineResult, Git::CommandLine::Result)
  Git::Deprecation.warn(
    'Git::CommandLineResult is deprecated and will be removed in v6.0.0. ' \
    'Use Git::CommandLine::Result instead.'
  )
  Git::CommandLine::Result
end

.default_branch(repository, options = {}) ⇒ String

Returns the name of the default branch of the given repository

Examples:

with a URI string

Git.default_branch('https://github.com/ruby-git/ruby-git') # => 'master'
Git.default_branch('https://github.com/rspec/rspec-core') # => 'main'

with a URI object

repository_uri = URI('https://github.com/ruby-git/ruby-git')
Git.default_branch(repository_uri) # => 'master'

with a local repository

Git.default_branch('.') # => 'master'

with a local repository Pathname

repository_path = Pathname('.')
Git.default_branch(repository_path) # => 'master'

with the logging option

logger = Logger.new(STDOUT, level: Logger::INFO)
Git.default_branch('.', log: logger) # => 'master'
# Logs the executed git command to STDOUT, for example:
#   I, [2022-04-13T16:01:33.221596 #18415]  INFO -- : git '-c' 'core.quotePath=true'
#     '-c' 'color.ui=false' ls-remote '--symref' '--' '.' 'HEAD'  2>&1

Parameters:

  • repository (URI, Pathname, String)

    The (possibly remote) repository to get the default branch name for

    See GIT URLS for more information.

  • options (Hash) (defaults to: {})

    The options for this command (see list of valid options below)

Options Hash (options):

  • :log (Logger)

    A logger to use for Git operations. Git commands are logged at the :info level. Additional logging is done at the :debug level.

Returns:

  • (String)

    the name of the default branch



273
274
275
276
277
# File 'lib/git.rb', line 273

def self.default_branch(repository, options = {})
  context = Git::ExecutionContext::Global.new(logger: options[:log])
  output = Git::Commands::LsRemote.new(context).call(repository, 'HEAD', symref: true).stdout
  Git::Parsers::LsRemote.parse_default_branch(output)
end

.export(repository_url, directory = nil, options = {})

This method returns an undefined value.

Clone a repository into directory then remove its .git directory

Exports the current HEAD (or the specific branch given in options[:branch]) into the given directory. It then removes all traces of git from the directory.

Takes the same options as clone except that :remote is silently ignored and :depth defaults to 1.

Parameters:

  • repository_url (String, URI, Pathname)

    the repository to export from

  • directory (String, Pathname, nil) (defaults to: nil)

    the directory to export into; defaults to the repository basename

  • options (Hash) (defaults to: {})

    options forwarded to clone (:remote is ignored; :depth defaults to 1)

Options Hash (options):

  • :branch (String)

    the branch or tag to export instead of HEAD



299
300
301
302
303
304
# File 'lib/git.rb', line 299

def self.export(repository_url, directory = nil, options = {})
  options.delete(:remote)
  repo = clone(repository_url, directory, { depth: 1 }.merge(options))
  repo.checkout("origin/#{options[:branch]}") if options[:branch]
  FileUtils.rm_r File.join(repo.dir.to_s, '.git')
end

.git_version(binary_path = nil) ⇒ Git::Version

Return the version of a git binary as a Version

Examples:

Default binary

Git.git_version #=> #<Git::Version 2.42.0>

Explicit binary path

Git.git_version('/opt/homebrew/bin/git') #=> #<Git::Version 2.42.0>

Parameters:

  • binary_path (String, nil) (defaults to: nil)

    path to the git binary; defaults to Git::Config.instance.binary_path

Returns:

Raises:



514
515
516
517
# File 'lib/git.rb', line 514

def self.git_version(binary_path = nil)
  path = binary_path || Git::Config.instance.binary_path
  cached_git_version(path) { run_git_version(path) }
end

.global_config(name = nil, value = nil) ⇒ String, ...

Deprecated.

Use config_get, config_set, or config_list instead.

  • Git.global_config('user.name')Git.config_get('user.name', global: true)
  • Git.global_config('user.name', 'Bob')Git.config_set('user.name', 'Bob', global: true)
  • Git.global_configGit.config_list(global: true)

Get or set a git global configuration value

Examples:

Set a value

Git.global_config('user.name', 'Scott Chacon')

Get a value

Git.global_config('user.name')  # => 'Scott Chacon'

List all global config entries

Git.global_config  # => { 'user.name' => 'Scott Chacon', ... }

Parameters:

  • name (String, nil) (defaults to: nil)

    the config key to get or set; omit to list all

  • value (Object, nil) (defaults to: nil)

    the value to set; omit to get or list

Returns:



330
331
332
333
334
335
336
337
# File 'lib/git.rb', line 330

def self.global_config(name = nil, value = nil)
  Git::Deprecation.warn(
    'Git.global_config is deprecated and will be removed in v6.0.0. ' \
    'Use Git.config_get(name, global: true), Git.config_set(name, value, global: true), ' \
    'or Git.config_list(global: true) instead.'
  )
  legacy_config_set_get_list(name, value, global: true)
end

.ls_remote(repository = '.', options = {}) ⇒ Hash{String => Hash}

Displays references available in a remote repository along with the associated commit IDs

Examples:

From a remote repository given its URL

references = Git.ls_remote('https://github.com/user/repo.git')

From the default remote of the current repository

references = Git.ls_remote

From a specific remote of the current repository

references = Git.ls_remote('origin')

Parameters:

  • repository (String, nil) (defaults to: '.')

    the target repository location or the name of a remote

    Defaults to '.' (the current directory). Passing nil explicitly is deprecated and will be removed in v6.0.0; pass '.' or omit the argument.

  • options (Hash) (defaults to: {})

    the options to pass to the git command

Options Hash (options):

  • :branches (Boolean, nil) — default: nil

    limit output to refs under refs/heads/

    Alias: :b

  • :heads (Boolean, nil) — default: nil

    limit output to refs under refs/heads/

    Deprecated: use :branches instead. Kept for backward compatibility with older git versions where --heads is the only supported flag.

    Alias: :h

  • :tags (Boolean, nil) — default: nil

    limit output to refs under refs/tags/

    Alias: :t

  • :refs (Boolean, nil) — default: nil

    exclude peeled tags and pseudorefs like HEAD from the output

  • :upload_pack (String) — default: nil

    full path to git-upload-pack on the remote host

    Useful when accessing repositories via SSH where the daemon does not use the PATH configured by the user.

  • :quiet (Boolean, nil) — default: nil

    do not print the remote URL to stderr

    Alias: :q

  • :exit_code (Boolean, nil) — default: nil

    exit with status 2 when no matching refs are found in the remote repository

    Without this option, the command exits 0 whenever it successfully communicates with the remote, even if no refs match.

  • :sort (String) — default: nil

    sort output by the given key

    Prefix - for descending order. Supports "version:refname" or "v:refname". See git for-each-ref for sort key documentation.

  • :server_option (String, Array<String>) — default: nil

    transmit a string to the server when communicating using protocol version 2

    The string must not contain NUL or LF characters. Repeatable by passing an Array. Alias: :o

  • :timeout (Numeric) — default: nil

    execution timeout in seconds

  • :log (Logger) — default: nil

    a logger to use for Git operations

    Git commands are logged at the :info level. Additional logging is done at the :debug level.

Returns:

  • (Hash{String => Hash})

    the available references of the target repo

Raises:

  • (ArgumentError)


426
427
428
429
430
431
432
433
434
435
436
# File 'lib/git.rb', line 426

def self.ls_remote(repository = '.', options = {})
  repository = normalize_ls_remote_repository(repository)
  options = options.dup
  log = options.delete(:log)
  unknown = options.keys - LS_REMOTE_ALLOWED_OPTS
  raise ArgumentError, "Unknown options: #{unknown.join(', ')}" unless unknown.empty?

  context = Git::ExecutionContext::Global.new(logger: log)
  output_lines = Git::Commands::LsRemote.new(context).call(repository, **options).stdout.split("\n")
  Git::Parsers::LsRemote.parse_output(output_lines)
end

Instance Method Details

#config(name, value) ⇒ Git::CommandLine::Result #config(name) ⇒ String #configHash{String => String}

Deprecated.

Mixing in the Git module is deprecated and will be removed in v6.0.0. Use Git.config_get(name), Git.config_set(name, value), or Git.config_list instead.

Gets or sets local git configuration options

Overloads:

  • #config(name, value) ⇒ Git::CommandLine::Result

    Set the value for the git named configuration option

    Parameters:

    • name (String)

      the name of the git configuration option

    • value (String, Boolean)

      the value to set for the git configuration option

    Returns:

  • #config(name) ⇒ String

    Get the value for the git named configuration option

    Parameters:

    • name (String)

      the name of the git configuration option

    Returns:

    • (String)

      the value of the git configuration option

  • #configHash{String => String}

    List all git configuration options

    Returns:

    • (Hash{String => String})

      a hash of all git configuration options



163
164
165
166
167
168
169
# File 'lib/git.rb', line 163

def config(name = nil, value = nil)
  Git::Deprecation.warn(
    'Git#config is deprecated and will be removed in v6.0.0. ' \
    'Use Git.config_get(name), Git.config_set(name, value), or Git.config_list instead.'
  )
  Git.__send__(:legacy_config_set_get_list, name, value, global: false)
end

#global_config(name, value) ⇒ Git::CommandLine::Result #global_config(name) ⇒ String #global_configHash{String => String}

Deprecated.

Mixing in the Git module is deprecated and will be removed in v6.0.0. Use Git.config_get(name, global: true), Git.config_set(name, value, global: true), or Git.config_list(global: true) instead.

Gets or sets global git configuration options

Overloads:

  • #global_config(name, value) ⇒ Git::CommandLine::Result

    Set the value for the git named configuration option

    Parameters:

    • name (String)

      the name of the git configuration option

    • value (String, Boolean)

      the value to set for the git configuration option

    Returns:

  • #global_config(name) ⇒ String

    Get the value for the git named configuration option

    Parameters:

    • name (String)

      the name of the git configuration option

    Returns:

    • (String)

      the value of the git configuration option

  • #global_configHash{String => String}

    List all git configuration options

    Returns:

    • (Hash{String => String})

      a hash of all git configuration options



226
227
228
229
230
231
232
233
# File 'lib/git.rb', line 226

def global_config(name = nil, value = nil)
  Git::Deprecation.warn(
    'Git#global_config is deprecated and will be removed in v6.0.0. ' \
    'Use Git.config_get(name, global: true), Git.config_set(name, value, global: true), ' \
    'or Git.config_list(global: true) instead.'
  )
  Git.__send__(:legacy_config_set_get_list, name, value, global: true)
end