2023-03-15 00:37:11 +08:00
---
date: "2020-07-06T16:00:00+02:00"
2023-05-23 18:14:57 +08:00
title: "Push"
2023-04-07 07:36:19 +08:00
slug: "push"
2023-07-26 12:53:13 +08:00
sidebar_position: 15
2023-03-15 00:37:11 +08:00
toc: false
draft: false
Refactor docs (#23752)
This was intended to be a small followup for
https://github.com/go-gitea/gitea/pull/23712, but...here we are.
1. Our docs currently use `slug` as the entire URL, which makes
refactoring tricky (see https://github.com/go-gitea/gitea/pull/23712).
Instead, this PR attempts to make future refactoring easier by using
slugs as an extension of the section. (Hugo terminology)
- What the above boils down to is this PR attempts to use directory
organization as URL management. e.g. `usage/comparison.en-us.md` ->
`en-us/usage/comparison/`, `usage/packages/overview.en-us.md` ->
`en-us/usage/packages/overview/`
- Technically we could even remove `slug`, as Hugo defaults to using
filename, however at least with this PR it means `slug` only needs to be
the name for the **current file** rather than an entire URL
2. This PR adds appropriate aliases (redirects) for pages, so anything
on the internet that links to our docs should hopefully not break.
3. A minor nit I've had for a while, renaming `seek-help` to `support`.
It's a minor thing, but `seek-help` has a strange connotation to it.
4. The commits are split such that you can review the first which is the
"actual" change, and the second is added redirects so that the first
doesn't break links elsewhere.
---------
Signed-off-by: jolheiser <john.olheiser@gmail.com>
2023-04-28 11:33:41 +08:00
aliases:
- /en-us/push-to-create
- /en-us/push-options
2023-03-15 00:37:11 +08:00
menu:
sidebar:
parent: "usage"
2023-04-07 07:36:19 +08:00
name: "Push"
2023-07-26 12:53:13 +08:00
sidebar_position: 15
2023-04-07 07:36:19 +08:00
identifier: "push"
2023-03-15 00:37:11 +08:00
---
2023-04-07 07:36:19 +08:00
There are some additional features when pushing commits to Gitea server.
# Open PR through Push
When you push commits to a non-default branch for the first time,
you will receive a link you can click on to visit the compare page of your branch compared to your main branch.
From there, it's easy to create a pull request, even if you want to target another branch.
![Gitea Push Hint ](/gitea-push-hint.png )
# Push Options
In Gitea `1.13` , support for some [push options ](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt )
were added.
## Supported Options
- `repo.private` (true|false) - Change the repository's visibility.
This is particularly useful when combined with push-to-create.
- `repo.template` (true|false) - Change whether the repository is a template.
Example of changing a repository's visibility to public:
```shell
git push -o repo.private=false -u origin main
```
2023-03-15 00:37:11 +08:00
# Push To Create
Push to create is a feature that allows you to push to a repository that does not exist yet in Gitea. This is useful for automation and for allowing users to create repositories without having to go through the web interface. This feature is disabled by default.
## Enabling Push To Create
2023-03-15 00:53:02 +08:00
2023-07-26 12:53:13 +08:00
In the `app.ini` file, set `ENABLE_PUSH_CREATE_USER` to `true` and `ENABLE_PUSH_CREATE_ORG` to `true` if you want to allow users to create repositories in their own user account and in organizations they are a member of respectively. Restart Gitea for the changes to take effect. You can read more about these two options in the [Configuration Cheat Sheet ](administration/config-cheat-sheet.md#repository-repository ).
2023-03-15 00:37:11 +08:00
## Using Push To Create
Assuming you have a git repository in the current directory, you can push to a repository that does not exist yet in Gitea by running the following command:
```shell
# Add the remote you want to push to
git remote add origin git@{domain}:{username}/{repo name that does not exist yet}.git
# push to the remote
git push -u origin main
```
2023-03-15 00:53:02 +08:00
This assumes you are using an SSH remote, but you can also use HTTPS remotes as well.
2023-03-15 01:12:27 +08:00
2023-04-07 07:36:19 +08:00
Push-to-create will default to the visibility defined by `DEFAULT_PUSH_CREATE_PRIVATE` in `app.ini` .