无法Git推大师Github

这个问题与我在理解rebase,分支和合并以及这个问题上的问题有关

你如何能在你的远程列表中拥有一个teamMate的时候提交给你的github账号?

我发现其他人也有同样的问题。 这个问题似乎与/etc/xinet.d/有关。

问题:无法推送我的本地分支到Github的主分支

我跑

git push origin master 

我明白了

 fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly 

错误信息提示我分支的“起源”不在我的本地git仓库中。 这样,Git停止连接到Github。

这很奇怪,因为我没有删除分支的“起源”。

我的混帐树是

  dev * master ticgit remotes/Math/Math remotes/Math/master remotes/origin/master remotes/Masi/master 

当你在你的本地Git中有一个teamMate的分支时,你怎么能把你的本地分支推到Github


VonC的答案解决了主要问题。 我把通行证放到了我的ssh密钥中。

我跑

 $git push github master 

我明白了

 Permission denied (publickey). fatal: The remote end hung up unexpectedly 

看来我需要给Git的密码以某种方式。

你怎么能让Github请求你的密码而不是依靠ssh密钥?

什么

 $ git config --get-regexp '^(remote|branch)\.' 

返回(在你的git仓库中执行)?

Origin只是引用远程Git存储库的默认命名约定。

如果它没有引用GitHub(而是指向你的队友仓库的一个路径,这个路径可能不再有效或可用),只需添加另一个来源,就像这个Bloggitation条目

 $ git remote add origin2 git@github.com:myLogin/myProject.git $ git push origin2 master 

(我实际上使用名称'github'而不是'origin'或'origin2')


权限被拒绝(publickey)。
致命的:远端意外挂断

如GitHub帮助指南中所述 ,检查您的gitHub身份是否在本地Git存储库中正确声明。 (user.name和github.name – 和github.token)

然后, 石头博客建议(如马西奥加 西亚 ):

 $ cd ~/.ssh $ ssh-add id_rsa 

咸海巴尔干补充说: 创建一个配置文件

解决方案是在〜/ .ssh /下创建一个配置文件,如本页OS X部分的底部所示 。

这是我添加的文件,按照页面上的说明,我的推动又开始工作:

 Host github.com User git Port 22 Hostname github.com IdentityFile ~/.ssh/id_rsa TCPKeepAlive yes IdentitiesOnly yes 

你也可以发布结果

 ssh -v git@github.com 

有更多的信息,为什么GitHub SSH连接拒绝你。

检查你是否输入正确的公钥(它需要以' == '结尾)。
不要粘贴你的私钥,而要粘贴你的私钥。 公钥将如下所示:

 ssh-rsa AAAAB3<big string here>== tek...@gmail.com 

(注意:你的ssh密钥是否使用了密码?没有密码就更容易了)

请检查推送时使用的网址( git@github.com/... ,而不是git://github.com/...

检查你是否有一个SSH代理来使用和缓存你的密钥。

尝试这个:

  $ ssh -i path/to/public/key git@github.com 

如果这样的话,那么这意味着你的密钥不会被你的ssh客户端发送到GitHub。

这是您的遥控器的问题。 当你做git push origin masterorigin是远程的, master是你推的分支。

当你这样做:

 git remote 

我敢打赌,这份名单不包括origin 。 要重新添加远程的来源:

 git remote add origin git@github.com:your_github_username/your_github_app.git 

或者,如果存在但格式不正确:

 git remote rm origin git remote add origin git@github.com:your_github_username/your_github_app.git 

VonC的答案是最好的,但为我工作的部分是非常简单的,被埋在了很多其他可能的答案中。 如果你和我一样,在运行“rails入门”教程的时候遇到了这个问题,而且你还没有设置公钥/私钥的SSH密钥。

如果是的话,试试这个:

  1. $>cd ~/.ssh

  2. $>ls

  3. 如果ls的输出是known_hosts ,那么请访问: http : //help.github.com/mac-key-setup/并开始按照“生成密钥”一节中的说明操作。

运行这些指令后,我的“git push origin master”命令起作用了。

我有同样的问题,我认为防火墙阻止了git协议。 所以最后我不得不求助于使用https://来获取和推送。 但是,这将始终提示用户输入密码…

这里是我为什么工作的例子(只是与那些不能使用git://协议:)分享

 git fetch https://[user-name]@github.com/[user-name]/[project].git 

如果以上的工作,你可以删除的原点和替换

 git remote rm origin git remote add origin https://[user-name]@github.com/[user-name]/[project].git 

我认为这是git错误消息误导的另一种情况。 通常当我看到这个错误,这是由于SSH问题。 你有没有添加你的公共ssh密钥到你的github账户?

编辑:另外,xinet.d论坛帖子是指运行git-daemon作为服务,以便人们可以从你的系统拉。 没有必要运行git-daemon来推送到github。

我得到了同样的问题,我只是将〜/ .ssh / id_rsa.pub的内容添加到我在GitHub中的帐户。 之后,再试一次git push origin master ,应该可以的。

他们要记住的关键是“起源”不是你可能需要使用的价值……当我用回购的名称取代“起源”时,它起作用。

上面的答案没有解决的一个可能性是,你可能没有从你的shell的SSH访问。 也就是说,你可能在一个网络(一些大学的网络做到这一点)ssh服务被封锁。在这种情况下,你将不仅能够获得github服务,而且还有其他的ssh服务。 你可以通过尝试使用任何其他的ssh服务来测试这是否是问题。这是我的情况。

我有这个问题,并尝试了各种解决方案,包括上面列出的许多(配置文件,调试SSH等)。 最后,我通过在git push中包含-u开关来解决这个问题,在创建一个新的存储库的时候,按照github的指示–Github new Repository