Mr_and_Mrs_D
Mr_and_Mrs_D

Reputation: 34036

Completely replace remote branch with another in github leaving no traces of the old one

I pushed a branch to an empty github repo :

MrD@MRSD /c/Dropbox/eclipse_workspaces/javaEE/ted2012 (GitHubSquash)
$ git remote add github  https://github.com/Utumno/ted2012.git
MrD@MRSD /c/Dropbox/eclipse_workspaces/javaEE/ted2012 (GitHubSquash)
$ git push -u github GitHubSquash
Username for 'https://github.com': Utumno
Password for 'https://[email protected]':
//...
To https://github.com/Utumno/ted2012.git
 * [new branch]      GitHubSquash -> GitHubSquash
Branch GitHubSquash set up to track remote branch GitHubSquash from github.

Then I noticed I had pushed some fluff along and tried to delete the branch/replace it with another etc. I failed :

MrD@MRSD /c/Dropbox/eclipse_workspaces/javaEE/ted2012 (GitHub2)
$ git push  :github && git push github GitHub2
ssh: connect to host  port 22: Bad file number
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
MrD@MRSD /c/Dropbox/eclipse_workspaces/javaEE/ted2012 (GitHub2)
$ git checkout GitHubSquash
Switched to branch 'GitHubSquash'
Your branch is ahead of 'github/GitHubSquash' by 1 commit.
  (use "git push" to publish your local commits)
MrD@MRSD /c/Dropbox/eclipse_workspaces/javaEE/ted2012 (GitHubSquash)
$ git push  :github
ssh: connect to host  port 22: Bad file number
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
MrD@MRSD /c/Dropbox/eclipse_workspaces/javaEE/ted2012 (GitHubSquash)
$ git push  -u :github
ssh: connect to host  port 22: Bad file number
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

I had to delete the repo and push my new branch anew. That worked but left me wondering :

  1. What should I have done to completely replace the remote branch with another ?

  2. Why on earth I was getting the ssh: connect to host port 22: Bad file number errors - while my first push succeeded (and notice I am on http) ?

    $ git --version
    git version 1.8.1.msysgit.1
    

Upvotes: 6

Views: 13901

Answers (2)

mixo
mixo

Reputation: 329

git push origin :GitHubSquash

to delete remote branch

git push --set-upstream origin GitHubSquash

to push local branch

Upvotes: 0

Chronial
Chronial

Reputation: 70763

Your syntax is wrong. The correct command is:

git push -f github GitHubSquash

This will replace the remote GitHubSquash branch with your local version. If you just want to delete the remote branch:

git push -f github :GitHubSquash

I guess you got your error, because git is trying to interpret :github as an url and weird stuff happens :).

Upvotes: 16

Related Questions