2.8. Push

TortoiseGit

2.8. Push

This section talks about how to push (i.e., send) changes to another repository.

In order to perform a push open the push dialog using TortoiseGit Push... . Pushing changes is also possible using the Sync dialog (cf. Section 2.9, “Sync”), however, there you have less options, but the sync dialog allows you to initiate other operations such as pulling and to see diffs and changes.

Figure 2.16. Push dialog

Push dialog

2.8.1. Branch

Local: The source branch which will be pushed to the other repository. If the current branch or the selected local branch has a remote tracked branch set, the remote branch and remote repository are automatically selected. A remote tracked branch can be set using the reference browser (cf. Section 2.11, “Browse All Refs”) or by using Set upstream/track remote branch. This can be overridden in this dialog by using one of the Always push to the selected remote ... options, so that for pushing a different branch is autoselected as for merging and pulling.

Remote: The remote branch of the other repository.

2.8.2. Destination

Remote: Choose an already configured remote repository.

Arbitrary URL: The URL of a remote repository.

You must push change to a bare repository. Pushing changes to repository which has a working tree can lead to unexpected results.

2.8.3. Options

Force (May discard known changes) This allows remote repository to accept a safer non-fast-forward push. This can cause the remote repository to lose commits; use it with care. This can prevent from losing unknown changes from other people on the remote. It checks if the server branch points to the same commit as the remote-tracking branch (known changes). If yes, a force push will be performed. Otherwise it will be rejected. Since git does not have remote-tracking tags, tags cannot be overwritten using this option. This passes --force-with-lease option of git push command.

Force (May discard unknown changes) This allows remote repository to accept an unsafe non-fast-forward push. This can cause the remote repository to lose commits; use it with care. This does not check any server commits, so it is possible to lose unknown changes on the remote. Use this option with Include Tags to overwrite tags. This passes the traditional --force option of git push command.

Include Tags Also push tags to remote repository.

Autoload Putty Key

[Tip] Tip

You can find more information about PuTTY and using ssh-keys at Appendix F, Tips and tricks for SSH/PuTTY. There is also explained how you can use several accounts at the same time for a remote.

Set upstream/track remote branch: After a successful push, the tracking relationship will be set between the pushed local branch and its remote tracking branch. This will autoselect the remote branch automatically for pulling/pushing and merging.

Always push to the selected remote archive for this local branch

Always push to the selected remote branch for this local branch

Recurse submodule None: No checking. Check: Checks if the bounded commits of all submodules are present on the remote repositories. If any of the submodules are not pushed, the superproject push will fail. On-demand: Checks if the bounded commits of all submodules are present on the remote repositories. If the submodules are not pushed yet, it will try to push them.

You can find more information at Section G.3.96, “git-push(1)”.