# salt.modules.git

Support for the Git SCM

`salt.modules.git.` `add`(cwd, file_name, user=None, opts=None)

  add a file to git

  cwd
    The path to the Git repository
  file_name
    Path to the file in the cwd
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.add /path/to/git/repo /path/to/file

`salt.modules.git.` `archive`(cwd, output, rev='HEAD', fmt=None, prefix=None, user=None)

  Export a tarball from the repository

  cwd
    The path to the Git repository
  output
    The path to the archive tarball
  rev: HEAD
    The revision to create an archive from
  fmt: None
    Format of the resulting archive, zip and tar are commonly used
  prefix : None
    Prepend <prefix>/ to every filename in the archive
  user : None
    Run git as a user other than what the minion runs as

  If `prefix` is not specified it defaults to the basename of the repo directory.

  CLI Example:

      salt '*' git.archive /path/to/repo /path/to/archive.tar.gz

`salt.modules.git.` `checkout`(cwd, rev, force=False, opts=None, user=None)

  Checkout a given revision

  cwd
    The path to the Git repository
  rev
    The remote branch or revision to checkout
  force : False
    Force a checkout even if there might be overwritten changes
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as

  CLI Examples:

      salt '*' git.checkout /path/to/repo somebranch user=jeff

      salt '*' git.checkout /path/to/repo opts='testbranch -- conf/file1 file2'

      salt '*' git.checkout /path/to/repo rev=origin/mybranch opts=--track

`salt.modules.git.` `clone`(cwd, repository, opts=None, user=None, identity=None)

  Clone a new repository

  cwd
    The path to the Git repository
  repository
    The git URI of the repository
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as
  identity : None
    A path to a private key to use over SSH

  CLI Example:

      salt '*' git.clone /path/to/repo git://github.com/saltstack/salt.git

      salt '*' git.clone /path/to/repo.git\
              git://github.com/saltstack/salt.git '--bare --origin github'

`salt.modules.git.` `commit`(cwd, message, user=None, opts=None)

  create a commit

  cwd
    The path to the Git repository
  message
    The commit message
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.commit /path/to/git/repo 'The commit message'

`salt.modules.git.` `config_get`(cwd, setting_name, user=None)

  Get a key from the git configuration file (.git/config) of the repository.

  cwd
    The path to the Git repository
  setting_name
    The name of the configuration key to get
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.config_get /path/to/repo user.email

`salt.modules.git.` `config_set`(cwd, setting_name, setting_value, user=None, is_global=False)

  Set a key in the git configuration file (.git/config) of the repository or globally.

  cwd
    The path to the Git repository
  setting_name
    The name of the configuration key to set
  setting_value
    The (new) value to set
  user : None
    Run git as a user other than what the minion runs as
  is_global : False
    Set to True to use the '--global' flag with 'git config'

  CLI Example:

      salt '*' git.config_set /path/to/repo user.email me@example.com

`salt.modules.git.` `current_branch`(cwd, user=None)

  Returns the current branch name, if on a branch.

  CLI Example:

      salt '*' git.current_branch /path/to/repo

`salt.modules.git.` `describe`(cwd, rev='HEAD', user=None)

  Returns the git describe string (or the SHA hash if there are no tags) for the given revision

  cwd
    The path to the Git repository
  rev: HEAD
    The revision to describe
  user : None
    Run git as a user other than what the minion runs as

  CLI Examples:

      salt '*' git.describe /path/to/repo

      salt '*' git.describe /path/to/repo develop

`salt.modules.git.` `fetch`(cwd, opts=None, user=None, identity=None)

  Perform a fetch on the given repository

  cwd
    The path to the Git repository
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as
  identity : None
    A path to a private key to use over SSH

  CLI Example:

      salt '*' git.fetch /path/to/repo '--all'

      salt '*' git.fetch cwd=/path/to/repo opts='--all' user=johnny

`salt.modules.git.` `init`(cwd, opts=None, user=None)

  Initialize a new git repository

  cwd
    The path to the Git repository
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.init /path/to/repo.git opts='--bare'

`salt.modules.git.` `ls_remote`(cwd, repository='origin', branch='master', user=None, identity=None)

  Returns the upstream hash for any given URL and branch.

  cwd
    The path to the Git repository
  repository: origin
    The name of the repository to get the revision from. Can be the name of a remote, an URL, etc.
  branch: master
    The name of the branch to get the revision from.
  user : none
    run git as a user other than what the minion runs as
  identity : none
    a path to a private key to use over ssh

  CLI Example:

      salt '*' git.ls_remote /pat/to/repo origin master

`salt.modules.git.` `merge`(cwd, branch='@{upstream}', opts=None, user=None)

  Merge a given branch

  cwd
    The path to the Git repository
  branch : @{upstream}
    The remote branch or revision to merge into the current branch
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.fetch /path/to/repo
      salt '*' git.merge /path/to/repo @{upstream}

`salt.modules.git.` `pull`(cwd, opts=None, user=None, identity=None)

  Perform a pull on the given repository

  cwd
    The path to the Git repository
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as
  identity : None
    A path to a private key to use over SSH

  CLI Example:

      salt '*' git.pull /path/to/repo opts='--rebase origin master'

`salt.modules.git.` `push`(cwd, remote_name, branch='master', user=None, opts=None, identity=None)

  Push to remote

  cwd
    The path to the Git repository
  remote_name
    Name of the remote to push to
  branch : master
    Name of the branch to push
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as
  identity : None
    A path to a private key to use over SSH

  CLI Example:

      salt '*' git.push /path/to/git/repo remote-name

`salt.modules.git.` `rebase`(cwd, rev='master', opts=None, user=None)

  Rebase the current branch

  cwd
    The path to the Git repository
  rev : master
    The revision to rebase onto the current branch
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.rebase /path/to/repo master
      salt '*' git.rebase /path/to/repo 'origin master'

  That is the same as:

      git rebase master
      git rebase origin master

`salt.modules.git.` `remote_get`(cwd, remote='origin', user=None)

  get the fetch and push URL for a specified remote name

  remote : origin
    the remote name used to define the fetch and push URL
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.remote_get /path/to/repo
      salt '*' git.remote_get /path/to/repo upstream

`salt.modules.git.` `remote_set`(cwd, name='origin', url=None, user=None)

  sets a remote with name and URL like git remote add <remote_name> <remote_url>

  remote_name : origin
    defines the remote name
  remote_url : None
    defines the remote URL; should not be None!
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.remote_set /path/to/repo remote_url=git@github.com:saltstack/salt.git
      salt '*' git.remote_set /path/to/repo origin git@github.com:saltstack/salt.git

`salt.modules.git.` `remotes`(cwd, user=None)

  Get remotes like git remote -v

  cwd
    The path to the Git repository
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.remotes /path/to/repo

`salt.modules.git.` `reset`(cwd, opts=None, user=None)

  Reset the repository checkout

  cwd
    The path to the Git repository
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.reset /path/to/repo master

`salt.modules.git.` `revision`(cwd, rev='HEAD', short=False, user=None)

  Returns the long hash of a given identifier (hash, branch, tag, HEAD, etc)

  cwd
    The path to the Git repository
  rev: HEAD
    The revision
  short: False
    Return an abbreviated SHA1 git hash
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.revision /path/to/repo mybranch

`salt.modules.git.` `rm`(cwd, file_name, user=None, opts=None)

  Remove a file from git

  cwd
    The path to the Git repository
  file_name
    Path to the file in the cwd
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.rm /path/to/git/repo /path/to/file

`salt.modules.git.` `stash`(cwd, opts=None, user=None)

  Stash changes in the repository checkout

  cwd
    The path to the Git repository
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.stash /path/to/repo master

`salt.modules.git.` `status`(cwd, user=None)

  Return the status of the repository. The returned format uses the status codes of gits 'porcelain' output mode

  cwd
    The path to the Git repository
  user : None
    Run git as a user other than what the minion runs as

  CLI Example:

      salt '*' git.status /path/to/git/repo

`salt.modules.git.` `submodule`(cwd, init=True, opts=None, user=None, identity=None)

  Initialize git submodules

  cwd
    The path to the Git repository
  init : True
    Ensure that new submodules are initialized
  opts : None
    Any additional options to add to the command line
  user : None
    Run git as a user other than what the minion runs as
  identity : None
    A path to a private key to use over SSH

  CLI Example:

      salt '*' git.submodule /path/to/repo.git/sub/repo

Current Salt release: 0.17.1

#### Previous topic

salt.modules.gentoolkitmod

#### Next topic

salt.modules.glance

### Quick search

Enter search terms or a module, class or function name.

### Upcoming SaltStack Events

My conferences on Lanyrd