hg push [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]

push changes to the specified destination

Push changesets from the local repository to the specified destination.

This operation is symmetrical to pull: it is identical to a pull in the destination repository from the current one.

By default, push will not allow creation of new heads at the destination, since multiple heads would make it unclear which head to use. In this situation, it is recommended to pull and merge before pushing.

Use --new-branch if you want to allow push to create a new named branch that is not present at the destination. This allows you to only create a new branch without forcing other changes.


Extra care should be taken with the -f/--force option, which will push all new heads on all branches, an action which will almost always cause confusion for collaborators.

If -r/--rev is used, the specified revision and all its ancestors will be pushed to the remote repository.

If -B/--bookmark is used, the specified bookmarked revision, its ancestors, and the bookmark will be pushed to the remote repository. Specifying "." is equivalent to specifying the active bookmark's name.

Please see 'hg help urls' for important details about "ssh://" URLs. If DESTINATION is omitted, a default path will be used.

Returns 0 if push was successful, 1 if nothing to push.

options ([+] can be repeated):

-f --force force push
-r --rev REV [+] a changeset intended to be included in the destination
-B --bookmark BOOKMARK [+] bookmark to push
-b --branch BRANCH [+] a specific branch you would like to push
--new-branch allow pushing a new branch
-e --ssh CMD specify ssh command to use
--remotecmd CMD specify hg command to run on the remote side
--insecure do not verify server certificate (ignoring web.cacerts config)

global options ([+] can be repeated):

-R --repository REPO repository root directory or name of overlay bundle file
--cwd DIR change working directory
-y --noninteractive do not prompt, automatically pick the first choice for all prompts
-q --quiet suppress output
-v --verbose enable additional output
--config CONFIG [+] set/override config option (use 'section.name=value')
--debug enable debugging output
--debugger start debugger
--encoding ENCODE set the charset encoding (default: UTF-8)
--encodingmode MODE set the charset encoding mode (default: strict)
--traceback always print a traceback on exception
--time time how long the command takes
--profile print command execution profile
--version output version information and exit
-h --help display help and exit
--hidden consider hidden changesets