Reputation: 453
I want to create a Git alias so I can run multiple commands at once.
I typed the following into the terminal:
git config alias.cleanpull "!git reset --hard HEAD; git clean -f; git pull"
I assumed that was the correct syntax but I get the following output immediately after entering the command (i.e. from defining the command, not actually running it):
git config alias.cleanpull "git config cleanpull.q "git push --all origin reset --hard HEAD; git clean -f; git pull" reset --hard HEAD; git clean -f; git pull"
usage: git config [<options>]
Config file location
--global use global config file
--system use system config file
--local use repository config file
-f, --file <file> use given config file
--blob <blob-id> read config from given blob object
Action
--get get value: name [value-regex]
--get-all get all values: key [value-regex]
--get-regexp get values for regexp: name-regex [value-regex]
--get-urlmatch get value specific for the URL: section[.var] URL
--replace-all replace all matching variables: name value [value_regex]
--add add a new variable: name value
--unset remove a variable: name [value-regex]
--unset-all remove all matches: name [value-regex]
--rename-section rename section: old-name new-name
--remove-section remove a section: name
-l, --list list all
-e, --edit open an editor
--get-color find the color configured: slot [default]
--get-colorbool find the color setting: slot [stdout-is-tty]
Type
--bool value is "true" or "false"
--int value is decimal number
--bool-or-int value is --bool or --int
--path value is a path (file or directory name)
Other
-z, --null terminate values with NUL byte
--name-only show variable names only
--includes respect include directives on lookup
git: 'pull reset --hard HEAD; git clean -f; git pull' is not a git command. See 'git --help'.
Upvotes: 1
Views: 140
Reputation: 14374
The problem here in shell (I guess you have bash
, it's most common, but it could be csh
or some other), not git. Bash threat !
symbol specially as a reference to command history. In order to use it literally you have to either escape it with backslash (\!
)
git config alias.cleanpull "\!git reset --hard HEAD; git clean -f; git pull"
or use single quotes
git config alias.cleanpull '!git reset --hard HEAD; git clean -f; git pull'
For more info see section History Expansion in bash manual.
Upvotes: 3