> For the complete documentation index, see [llms.txt](https://yu-sun.gitbook.io/essential-git-for-scientists/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yu-sun.gitbook.io/essential-git-for-scientists/intermediate-concepts/push.md).

# Push

Push is the opposite to pull / fetch. It sends the changes to the remote.&#x20;

One thing to notice is that the remote typically don't deal with conflicts.&#x20;

* Any conflicts should be resolved locally, before being pushed to the remote.
* You can ONLY push farst-forward merges.&#x20;

> Do NOT alter the branch history from the remote. Otherwise, you won't be able to push it. For example, if your remote has commits A-B-C and your local ends up as A-D-C, you can't push it as it's not a fast-forward merge.
>
> Also, don't change the commit history of the remote. Otherwise others can't push.

The typical way to push is

* Pull first. This ensures you have the latest progress from your colleagues.
* Make commits and extend the commit history.
* Push.
