29

Using version 1.0.4, I can't find any force push option. Is command line the only way to use force?

Can't push and Can't pull

Community
  • 1
  • 1
JeffBship
  • 527
  • 1
  • 4
  • 11
  • That option might be available now: see [my edited answer below](https://stackoverflow.com/a/53343983/6309). – VonC Aug 05 '20 at 13:56
  • With the latest GH Desktop 3.1.5 (Jan. 2023), the new Repository menu includes a force push entry. See [my revised answer below](https://stackoverflow.com/a/53343983/6309). – VonC Jan 27 '23 at 20:00

8 Answers8

14

Update Jan. 2023:

GitHub Desktop improves force pushing and fetching along with many great open source contributions (Jan. 2023)

GitHub Desktop 3.1.5 improves support for force pushing and fetching through the newly added Repository menu items as well as supporting pull request notifications on forks.

Previously, a user could only force push after an action such as rebasing.

Now, when users find their branch in any diverged state, they can opt to use the force push Repository menu item.

For example, a user can force push when commits exist on the remote that they are sure they want to overwrite.

https://i0.wp.com/user-images.githubusercontent.com/75402236/214120118-2d76588c-770e-4736-928e-b4252e2c601d.png?ssl=1 -- ALT GitHub Desktop repository in a diverged state with Repository menu open showing force push menu item

Similarly, a user may find themselves in a new local branch they are not ready to publish, yet they want to fetch to see if there are any new changes on their main branch they would want to merge in.
Instead of having to switch branches, they can use the Repository menu item to fetch those changes.

Learn more about GitHub Desktop here.


As of Nov. 2018, still no native support for a push --force in GitHub Desktop:

That might change, considering GitHub is now displaying who did a push --force on GitHub.

Update August 2020, issue 3580 mentioned above now include this screenshot, by turtlemaster19:

Interestingly, in the Advanced preferences of GitHub Desktop (at least on Mac) there is this interesting checkbox:

https://user-images.githubusercontent.com/46784000/89301809-b19ec200-d62f-11ea-902b-1d4fd1663853.png

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
11

There is a workaround to do a forced push on Github Desktop (Tested on Github Desktop for Mac, and for Windows)

STEP-1: Switch to history, tab.

enter image description here

STEP-2: Then click and drag one commit over the other. Squash commit popup will come, choose accordingly.

https://user-images.githubusercontent.com/19490960/160462212-b9b2fd47-67d7-4796-8ea5-6dbe482536b0.png

STEP-3: Now you will be able to see force push

enter image description here

Hope this helps, Happy Coding!

Vassopoli
  • 41
  • 7
Parthasarathy S
  • 197
  • 1
  • 6
  • 1
    This actually worked. I'd been using force push with GD for some time but for some reason this time the button there only showed "Pull from origin" which would mess things up, and what I really wanted to do was force push my branch. Making another empty commit, then moving that before my latest commit somehow made that button change into "Force push origin" just like you suggested in this answer. – Jonny Nov 03 '22 at 01:57
9

One workaround for the lack of a "Force Push" menu item is to right-click the latest commit in the History tab, choose "Amend Commit…", then edit the commit message.

Repeat the edit to change the commit message back again, if you like.

The "Push origin" button should have changed to "Force push origin".

Alf Eaton
  • 5,226
  • 4
  • 45
  • 50
5

If you only need to force-push just once, and are familiar with the command line, you could do this:

  1. Open the Github Desktop logs via "Help" > "Show Logs in Finder"

  2. Now perform a Push in Github Desktop

  3. You'll see what command the app is trying to perform in the logs window, e.g.:

    [ui] Executing push: git -c credential.helper= -c protocol.version=2 push origin main:main --progress (took 1.441s)

  4. Copy that call to the 'git' CLI and add a --force parameter

  5. Open a Terminal window and navigate to the folder of your local repository

  6. Perform the copied git command, and when asked for credentials, use the Github credentials you've used to login on the website

Raffael
  • 1,119
  • 10
  • 20
  • 4
    If you're getting "remote: Support for password authentication was removed on August 13, 2021" then [create access token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token), check "public_repo Access public repositories" in token "Select scopes" and use the token instead of your password when prompted. – artifex Aug 14 '21 at 18:22
2

GitHub Desktop's 'Amend Commit...' feature supports 'Force push origin'.

'Amend Commit...' option in GitHub Desktop context menu 'Amend Will Require Force Push' dialog in GitHub Desktop 'Amend last commit' button is shown in GitHub Desktop 'Force push origin' button is shown in GitHub Desktop

Hyunbin
  • 423
  • 4
  • 6
1

Ran into this same issue, was able to "force" push the changes I made by using the 'upload files' feature on github. Didn't sync my local repo, but it at least got the files in the repo for me to use on another machine. Not the ideal solution I'm sure, but it worked for my purposes, in case it can help someone else.

enter image description here

AWP
  • 91
  • 2
  • 6
1

GitHub Desktop actually have a force push feature. When you click "History" on Repository page, you can drag a one commit before another one which will cause force push to repository. There is no feature that you have requested at all, but it seems application is on a good way to have such thing.

keinsell
  • 426
  • 5
  • 16
-19

Yes you can do

git push origin <your_branch_name> --force

Update!

This option worked hence accepted answer but no longer works in later versions of Git.

Darragh Blake
  • 238
  • 1
  • 6