读了几遍廖雪峰先生的git教程,受益匪浅,但是。终归要在实战中体现的。
今天在oschina上建立一个新的仓库,发现克隆不了,只是建立了远程连接,这里是因为oschina的git上有个bug是在今年1月26号更新的的,之前导致很多用户不能使用clone,push,pull命令操作。在更新bug后,很多用户的SSH公钥都不好使了,需要重新配置。
这里因为之前不知道,所以遇到了一些其他的问题。参考网上的一些错误的处理方式在这里收集一些:
1. error:src refspec master does not match any.
2. 问题产生的原因:目录中没有文件,空目录是不能提交上去的。
3. 解决方式:
Touch README
Git add README
Git commit –m ‘firstcommit’
Gitpush origin master
2.failed to push some refs to…….
2.1解决方式 git pull originmaster //先pull下来,再push上去
在我进行远程提交的时候,一直提示我输入密码错误,但是我的密码是刚刚重新设置的,这里就有问题了,于是让错误重现,并百度。
发现oschina的bug解决说明后,需要重新配置SSH公钥,但是连带github上的公钥和秘钥也不好使了。于是这里要重新建立SSH公钥并将秘钥复制到github上面。
步骤
1. 下载git的客户端,
2. 在开始菜单或者右键有git bash的命令选项,单击,出现git的命令行窗口。
3. 输入名 ssh –keygen –t rsa –C ‘你的邮箱地址’
4. 会提示你输入文件路径,或者文件名(可以输入存在的一个文件夹的绝对路径),不过建议这一步之间按enter键,保持默认就好,会在系统用户下的一个.ssh的文件夹里自动生成公钥和秘钥。
5. 然后会提示你输入密码,注意输入密码的时候界面是不会有反应的,输入完后回车,
6. 提示重新输入密码,之后回车便会提示你的验证信息和公钥的存放路径,到相应路径下即可找到。
7. 如果你的公钥和秘钥因为错误而不能远程提交,建议将上面路径中的文件删除重新做,
8. 公钥的文件后缀名是.pub,使用editplus,工具打开,将里面的文本复制到你的github ,oschina 上个人账户的ssh key 选项,如果有将之前的删去。
9. 登陆github账户,上面有个个人设置的选项,点击Accont settings à左栏点击 SSH keys-à点击Add SSH key .
10. 复制公钥进去就行,这样之前不能提交的代码都可以进行提交了。
11. 验证这个key是不是可以工作
12. 输入ssh -T git@github.com
13. 如果看到hi! Username!......
14. 表示公钥设置成功
15.
如果你想更快速的建立远程git的代码仓库,这里有一个很快的方式
1.首先在github ,或者在oschina git 上创建一个用户存放项目的仓库,仓库名称为gitapp。这个项目的仓库一般都会有两个文件:.gitignore, LICENEC文件
还可以添加readme.txt说明项目的具体用途
2.然后到项目目录中,或者工空间,一般是eclipse,idea 中的工作路径中新建文件夹
输入项目名称比如gitapp,,新建readme.txt文件。
3 在git app 下右键点击git init,会自动一个.git的隐藏文件,
然后右键git bash ,进入git的命令行界面
4. 将本地仓库与远程仓库进行过关联,使用下面的命令:
5. Git remote add origin git@github.com:username/gitapp.git,这里如果已经建立连接可以删除
6. 输入git remote rm origin,然后重新建立连接。如果下面的命令不好使的话可以这样做。
7. Username是你的账号,邮箱也行,gitapp是你的项目名
8. 然后输入git push –u origin master
9. 注意第七步可能不好使,这就换一种方式,先pull下来,就是将.gitignoe文件和LICENCE文件拉取下来,输入:
10. Git pull origin master .
11. 再重复步骤4,5。
12. 会将readme.txt push上去,这就在命令行状态下,建立了本地仓库与远程仓库的连接了,
13. 可以使用eclipse等IDE打开项目,添加文件并尝试远程提交。
14. 我这里使用的是IDEA 14比较智能化,由于之前建立远程仓库和项目都要重新找步骤,这里就总结一下。方便记忆。
注意如果没有先本地仓库的话可以先建立远程仓库,并使用
git clonegit@github.com :username/gitapp.git
命令将远程仓库克隆到本地。然后使用IDE新建文件,并远程提交。不过这种方式比较容易迷糊。但是哪种简单就是最明智的解决之道。