6

我将一个分支推送到一个空的 github 存储库:

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://Utumno@github.com':
//...
To https://github.com/Utumno/ted2012.git
 * [new branch]      GitHubSquash -> GitHubSquash
Branch GitHubSquash set up to track remote branch GitHubSquash from github.

然后我注意到我已经推动了一些绒毛并试图删除分支/用另一个替换它等等。我失败了:

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.

我不得不删除 repo 并重新推送我的新分支。那行得通,但让我想知道:

  1. 我应该怎么做才能用另一个完全替换远程分支?

  2. 为什么我得到 ssh: connect to host port 22: Bad file number errors - 而我的第一次推送成功(并注意我在 http 上)?

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

2 回答 2

16

你的语法是错误的。正确的命令是:

git push -f github GitHubSquash

这将用您的本地版本替换远程 GitHubSquash 分支。如果您只想删除远程分支:

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 :).

于 2013-03-30T00:44:08.487 回答
0
git push origin :GitHubSquash

to delete remote branch

git push --set-upstream origin GitHubSquash

to push local branch

于 2015-05-22T02:56:54.493 回答